gpt4 book ai didi

javascript - for 循环和解构

转载 作者:行者123 更新时间:2023-12-05 00:35:14 24 4
gpt4 key购买 nike

有人可以向我解释 map.entries() 和解构是如何工作的吗?

  var numbers = new Map()
numbers.set(1,'one')
numbers.set(2,'two')
numbers.set(3,'three')
numbers.set(4,'four')
var [key,value] = numbers.entries() // returns key as [1,'one'] and value as [2,'two']

//but when using for..of loop

for(let [key,value] of numbers.entries()){
console.log(key,value)
} // it works and console logs keys and values

为什么这在 for..loop 中起作用?以及 .entries() 方法是如何准确工作的?我一直在寻找整个网络并且无法真正理解它。

最佳答案

entries方法返回一个迭代器。迭代器产生的每个值都是一个键/值对(具有 2 个元素的数组)。

掌握这一点的一种方法是查看如果将迭代器使用到新数组中会发生什么:

var numbers = new Map().set(1,'one').set(2,'two').set(3,'three').set(4,'four');

// Get everything from the iterator into a new array:
var arr = Array.from(numbers.entries());

console.log(arr);


请注意,您将一系列键/值对放入一个新数组中:
[ [1, "one"], [2, "two"], [3, "three"], [4, "four"] ]

现在到你的代码。第一次分配给 keyvalue具有误导性,因为您没有得到一个键和一个值。相反,您正在抓取 entries() 产生的前两对。迭代器。

如果你真的想得到2个变量中对应值的第一个key,你需要写:
var [[key, value]] = numbers.entries();

关于javascript - for 循环和解构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53682205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com