我很難理解爲什麼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」)項()作爲更可讀... –