使用for循环使用JavaScript打印数组中的值
我正在学习JavaScript,现在我正在尝试在Node中运行以下代码以显示数组中的值:使用for循环使用JavaScript打印数组中的值,javascript,node.js,Javascript,Node.js,我正在学习JavaScript,现在我正在尝试在Node中运行以下代码以显示数组中的值: let array = [1, 2, 3]; for (let a in array) { console.log(a); } 我希望上面的代码将打印1、2和3 但是,它打印0、1、2 有人能告诉我我的代码出了什么问题吗? let array = [1, 2, 3]; for (let a in array) { console.log(array[a]); } 设数组=[1,2,3];
let array = [1, 2, 3];
for (let a in array) {
console.log(a);
}
我希望上面的代码将打印1、2和3
但是,它打印0、1、2
有人能告诉我我的代码出了什么问题吗?
let array = [1, 2, 3];
for (let a in array) {
console.log(array[a]);
}
设数组=[1,2,3];
对于数组中的let{
console.logindex:+a+','+value:+array[a];
}
设数组=[1,2,3];
对于数组中的let{
console.logindex:+a+','+value:+array[a];
} 决不应使用for/in来迭代数组。当你这样做的时候,你只是得到数组索引,而不是实际的数组元素
for/in迭代对象的所有可枚举属性,而不仅仅是数组元素,数组元素最终可能包含您不想要的内容。有关详细信息,请参阅和
相反,您可以使用任意数量的其他选项。现代方法可能适用于包含数组的任何iterable
对于/对于
弗雷奇先生
普通for循环
决不应使用for/in来迭代数组。当你这样做的时候,你只是得到数组索引,而不是实际的数组元素
for/in迭代对象的所有可枚举属性,而不仅仅是数组元素,数组元素最终可能包含您不想要的内容。有关详细信息,请参阅和
相反,您可以使用任意数量的其他选项。现代方法可能适用于包含数组的任何iterable
对于/对于
弗雷奇先生
普通for循环
TL;DR:for..in语法获取您迭代的对象的属性,而不是您期望的对象的值。Mozilla开发者网络是一个很好的资源,本文对此进行了描述
要获取的数组的属性是索引,要获取所需的值,需要使用数组索引操作符[]在数组上使用索引属性,如下所示
设数组=[1,2,3];
对于数组中的let{
console.logarray[a];
} TL;DR:for..in语法获取您迭代的对象的属性,而不是您期望的对象的值。Mozilla开发者网络是一个很好的资源,本文对此进行了描述
要获取的数组的属性是索引,要获取所需的值,需要使用数组索引操作符[]在数组上使用索引属性,如下所示
设数组=[1,2,3];
对于数组中的let{
console.logarray[a];
} a是for-in循环中的增量,因此数组[a]将为您提供案例中的值
仅供参考。。。
从技术上讲,在数组上使用for-in循环是个坏主意,因为for-in循环将属性作为字符串接收,只是将数字字符串作为值接收的数组将这些值转换为数字
var数组=[1,2,3];
数组中的forvari{
console.logtypeof i;
} a是for-in循环中的增量,因此数组[a]将为您提供案例中的值
仅供参考。。。
从技术上讲,在数组上使用for-in循环是个坏主意,因为for-in循环将属性作为字符串接收,只是将数字字符串作为值接收的数组将这些值转换为数字
var数组=[1,2,3];
数组中的forvari{
console.logtypeof i;
}console.logarray[a]。a是增量。不过,我不建议在数组上使用for-in循环。使用array.forEachfunctionvalue、increment{},或者如果您想中断它,则只使用常规for循环,以加快执行速度。在forEach循环中,值将具有您的值,而不需要数组[increment]。我现在可以获得正确的输出。因此a实际上是数组的索引。将in替换为of。in是用来迭代对象的键,of是用来迭代一个变量的值。对于初学者来说,这是一个非常好的问题,学习答案,干得好!console.logarray[a]。a是增量。不过,我不建议在数组上使用for-in循环。使用array.forEachfunctionvalue、increment{},或者如果您想中断它,则只使用常规for循环,以加快执行速度。在forEach循环中,值将具有您的值,而不需要数组[increment]。我现在可以获得正确的输出。因此a实际上是数组的索引。将in替换为of。in是用来迭代对象的键,of是用来迭代一个变量的值。对于初学者来说,这是一个非常好的问题,学习答案,干得好!您永远不应该使用for/in来迭代数组,因为它迭代所有可枚举属性,而不仅仅是数组元素。使用for/of或.forEach或常规for循环。绝对不要使用for/in来迭代数组,因为它迭代所有可枚举属性,而不仅仅是数组元素。使用for/of或.forEach或常规for循环。绝对不要使用for/in来迭代数组,因为它迭代所有可枚举属性,而不仅仅是数组元素。使用for/of或.forEach或常规for循环。只是对const[key,value]好奇而已
Object.entriesarray{console.logindex:+key+:+value:+value;}的。可以用于对象和数组的?你什么时候会使用它?我不认为我会在数组中使用它,因为它还包括可枚举属性,而不仅仅是数组元素。不过,对于迭代对象的属性来说效果很好。如果我想为数组同时使用index和item,我会使用.forEach或数组的let[index,value]或常规for循环。您永远不应该使用for/in来迭代数组,因为这会迭代所有可枚举属性,而不仅仅是数组元素。使用for/of或.forEach或常规for循环。对于Object.entriesarray{console.logindex:+key+:+value:+value;}的const[key,value]来说,只是好奇而已。可以用于对象和数组的?你什么时候会使用它?我不认为我会在数组中使用它,因为它还包括可枚举属性,而不仅仅是数组元素。不过,对于迭代对象的属性来说效果很好。如果我想为数组同时使用索引和项,我会使用.forEach或数组的let[index,value]或常规for循环。
let array = [1, 2, 3];
for (let a of array) {
console.log(a);
}
let array = [1, 2, 3];
array.forEach(function(a, index) {
console.log(a);
});
let array = [1, 2, 3];
for (let i = 0; i < array.length; i++) {
console.log(array[i]);
}