for...in element returns 字符串数组的产量
Yield of for...in element returns strings array
我尝试打印一个由 yield
生成的数组,如果我使用 for...in 语句,它会创建一个字符串数组,同时使用常规 for 循环,它可以正常工作。
为什么会这样?
function *hello1(elements) {
for(var el in elements) yield el;
}
function *hello2(elements) {
for(var i=0;i<elements.length;i++) yield elements[i];
}
var elements = [1,2,3];
console.log(elements);
console.log([...hello1(elements)]);
console.log([...hello2(elements)]);
获取元素需要for ... of
statement.
for ... in
statement 迭代对象的键(不带符号)和 returns 字符串。
function* hello1(elements) {
for (var el of elements) yield el;
}
var elements = [1, 2, 3];
console.log([...hello1(elements)]);
一个更短的方法 returns 只是数组可以用 yield*
expression 迭代。
function* hello1(elements) {
yield* elements;
}
var elements = [1, 2, 3];
console.log([...hello1(elements)]);
您打算使用 for...of
, not for...in
which is for iterating over the enumerable keys of a target object. You can also use yield*
而不是 for...of
和 yield
:
function* hello1(elements) {
for (var el of elements) yield el;
}
function* hello2(elements) {
yield* elements;
}
var elements = [1, 2, 3];
console.log(elements);
console.log([...hello1(elements)]);
console.log([...hello2(elements)]);
我尝试打印一个由 yield
生成的数组,如果我使用 for...in 语句,它会创建一个字符串数组,同时使用常规 for 循环,它可以正常工作。
为什么会这样?
function *hello1(elements) {
for(var el in elements) yield el;
}
function *hello2(elements) {
for(var i=0;i<elements.length;i++) yield elements[i];
}
var elements = [1,2,3];
console.log(elements);
console.log([...hello1(elements)]);
console.log([...hello2(elements)]);
获取元素需要for ... of
statement.
for ... in
statement 迭代对象的键(不带符号)和 returns 字符串。
function* hello1(elements) {
for (var el of elements) yield el;
}
var elements = [1, 2, 3];
console.log([...hello1(elements)]);
一个更短的方法 returns 只是数组可以用 yield*
expression 迭代。
function* hello1(elements) {
yield* elements;
}
var elements = [1, 2, 3];
console.log([...hello1(elements)]);
您打算使用 for...of
, not for...in
which is for iterating over the enumerable keys of a target object. You can also use yield*
而不是 for...of
和 yield
:
function* hello1(elements) {
for (var el of elements) yield el;
}
function* hello2(elements) {
yield* elements;
}
var elements = [1, 2, 3];
console.log(elements);
console.log([...hello1(elements)]);
console.log([...hello2(elements)]);