我很难理解为什么array.entries存在如果数组本身是迭代?在javascript中array.entries()的用途是什么?
如果我可以使用带有简单数组的可迭代使用者(例如[1,2,3]),那么为什么需要将数组转换为数组迭代器?
我想不出任何这个函数在现实世界中有用的例子。请有人提供一个例子,可以使用array.entries(),为什么?
我很难理解为什么array.entries存在如果数组本身是迭代?在javascript中array.entries()的用途是什么?
如果我可以使用带有简单数组的可迭代使用者(例如[1,2,3]),那么为什么需要将数组转换为数组迭代器?
我想不出任何这个函数在现实世界中有用的例子。请有人提供一个例子,可以使用array.entries(),为什么?
的方法Array.prototype.entries()允许您使用一个Iterator对象,就像你已经指出正确。
主要方面是,您可以使用例如方法.next()
。您可以在MDN JavaScript documentation中阅读关于迭代器和迭代器的更多信息。如果您想在不使用循环的情况下通过阵列循环,此功能特别有用。
它也打开你作出无限迭代这样的可能性:
var ids = {
*[Symbol.iterator]: function() {
var index = 0;
return {
next: function() {
return { value: 'id-' + index++, done: false };
}
};
}
};
var counter = 0;
for (var value of ids) {
console.log(value);
if (counter++ > 1000) { // let's make sure we get out!
break;
}
}
例如:
var iter = [].entries.call("stackoverflow")
iter.next(); // { value: [0, "s"], done: false }
iter.next(); // { value: [1, "t"], done: false }
...
Works的任何阵列状物体,例如字符串和节点列表。这可能不是最重要的功能,但它没有伤害。
我喜欢
for(const [i,v] of [1,2,3].entries()) alert(i,v);
在这种情况下,我宁愿Array.from( “ABC”)项()作为更可读... –