我需要从0到30进行迭代,但我想在forEach
的帮助下执行此操作:
new Array(30).forEach(console.log.bind(console);
当然这不起作用,因此我做了:
new Array(30).join(',').split(',').forEach(console.log.bind(console));
还有其他方法可以填充空数组吗?
答案 0 :(得分:3)
实际上,有一种简单的方法可以创建[0..N)
(即不包括N
)范围:
var range0toN = Object.keys(Array.apply(0,Array(N)));
如果你只想获得一个正确的N个元素数组,显然可以删除Object.keys
部分。
仍然像其他人说的那样,在这种特殊情况下,使用for
循环可能更好。
答案 1 :(得分:0)
如果你只是想迭代,那就像这样使用for
循环
for (var i = 0; i < 30; i += 1) {
...
...
}
实际上,如果您正在寻找创建一系列数字的方法,那么您可以
console.log(Array.apply(null, {length: 30}).map(Number.call, Number));
它将创建0到29之间的数字。来源:Creating range in JavaScript - strange syntax
答案 2 :(得分:0)
您可以尝试使用for循环。新阵列不是最佳实践
var index, // we use that in the for loop
counter, // number of elements in array
myArray; // the array you want to fill
counter = 30;
myArray = [];
for (index = 0; index < counter; index += 1) {
myArray[index] = [];
/*
// alternative:
myArray.push([]);
// one-liner
for (index = 0; index < counter; index += 1) myArray.push([]);
*/
}
答案 3 :(得分:-1)
如果你坚持foreach
var data = [1, 2, 3];
data.forEach(function(x) {
console.log(x);
});