我想知道:
- 什么时候使用索引方法为新数组赋值?
- 并且;什么时候使用push方法?
我知道您可以使用索引为 for 循环中的数组赋值。
我的问题是:
我有一个如下所示的 for 循环:
for (i=array_len-2;i>0;i-=2)
{
var new_arry=array[i]
}
...这只会返回 i
的值。它不会将其存储在新数组中。
但是,如果我做同样的事情:
for (i=array_len-2;i>0;i-=2)
{
var new_arry=array.push(i)
}
它以[元素一,元素二]的格式将新元素添加到数组中。
最佳答案
无论哪种方式都有效,只需在循环外创建一个空数组即可。在每次迭代(循环)过程中使用递增变量。创建数组时避免使用关键字 new
,使用字面值 ex 效果好 99%。 var 数组 = [];
请记住,示例中的循环是向后执行的 (-=2
),而且很不寻常的是它提前停止了 (i=array_len-2;i>0;
),通常循环设置为全长(i=array_len
很可能源自 var array_len = array.length
)。因此,如果数组长度只有 4 到 5,这个非正统循环只会添加 2 个额外元素(我可能会关闭......)。
演示
// Fill array by push()
var arr1 = [];
for (let i=0; i < 5; i++) {
arr1.push(i);
}
console.log(arr1);
// Fill array by assignment
var arr2 = [];
for (let i=0; i< 5; i++) {
arr2[i] = i;
}
console.log(arr2);
关于JavaScript 循环和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47185695/