所以我有一个类似的课程:
class List {
constructor() {
this._rows = [];
}
add(row) {
this._rows.push(row);
}
[Symbol.iterator]() {
return this._rows.values();
}
}
我知道为了获得第一个可以通过
访问它的元素List._rows[0]
以及
for (var row of List) {
break;
}
我更好奇,因为我试图将this._rows视为私有,并且我更倾向于没有循环来获取第一个索引。还有其他办法吗?
答案 0 :(得分:1)
您可以使用next
方法获取对象的迭代器并访问值:
let list = new List();
let iterator = list[Symbol.iterator]();
iterator.next().value; // first item
iterator.next().value; // second item
所以获得第一个值的简写是:
list[Symbol.iterator]().next().value;
在实际代码中,不要忘记检查迭代器是否具有下一个值,该值指示迭代器返回的项的done
属性。