У меня есть связанный список в JavaScript, который мне нужно сделать итерабельным с помощью цикла for of
. Я почти сделал это, но, похоже, нет способа получить первое значение, включенное в результат. Вот упрощенная версия:Создание связанного списка итерации в ES6
var obj = {value: 1, next: {value: 2, next: {value: 3, next: {value: 4, next: {value: 5, next: {value: 6, next: {value:7, next: null}}}}}}};
obj[Symbol.iterator] = function() {
var current = this;
return {
next() {
if (current.next !== null) {
current = current.next;
return {value: current.value, done: false};
}
return {done: true}
}
}
}
for (const x of obj) {
console.log(x)
}
// this is how you get the values printed with no loop
// console.log(obj.value + '->' + obj.next.value + '->' + obj.next.next.value)