【发布时间】:2021-12-29 19:42:43
【问题描述】:
暂时搁置修改 JavaScript 的 Array.prototype 的顾虑,我将如何在 Array 原型上编写一个自定义方法来反向返回迭代器?具体来说,我想提供一个 entriesReverse() 方法,该方法与 Array.prototype.entries() 所做的完全一样,但顺序相反。我有一个定制功能:
const entriesReverse = (array) => ({
[Symbol.iterator]() {
let index = array.length;
return {
next: () => ({
value: [--index, array[index]],
done: index < 0
})
}
}
})
但如果我能弄清楚如何在现有的 Array 原型上将其作为一种方法来实现,那我会很高兴的。问题似乎是试图在 Symbol.iterator 块中引用“this”——它不是指数组本身,而是指迭代器。有什么想法吗?
【问题讨论】:
-
如果要引用动态
this参数,请不要使用箭头函数。
标签: javascript arrays iterator prototype reverse