在javascript中创建二维数组和推值

create two dimension array and push values in javascript

本文关键字:二维数组 创建 javascript      更新时间:2023-09-26

这里我正在创建二维数组并将值推入其中。在此代码中,我使用for循环创建空数组,并再次使用forloop将值推入数组。我的问题,我需要创建一个数组和推值在一个数组与一次for循环。

var arr = [];
for (var tot=0;tot<4;tot++) {//creating empty arrays
    arr.push([]);
}
for (var tot=0;tot<4;tot++) {//pushing values into an array
    for (var i=0;i<3;i++) {
        arr[tot].push(i);
    }
}
console.log(JSON.stringify(arr));//[[0,1,2],[0,1,2],[0,1,2],[0,1,2]]

用javascript或jquery回答

试试这个,对于一个O(n)循环:

var arr = [],dimentions = [3,4];
for (var i = 0; i< dimentions[0] * dimentions[1];i++) {
    var x = Math.floor(i/dimentions[0]), y = i%dimentions[0];
    arr[x] = arr[x] || [];
    arr[x].push(y);
}
console.log(JSON.stringify(arr));//[[0,1,2],[0,1,2],[0,1,2],[0,1,2]]

如果你同意O(n^2)嵌套循环:

var arr = [];
for (var i = 0; i < 4; i++) {//pushing values into an array
    arr[i] = arr[i] || [];
    for (var j = 0; j < 3;j++) {
        arr[i].push(j);
    }
}
console.log(JSON.stringify(arr));//[[0,1,2],[0,1,2],[0,1,2],[0,1,2]]

Try with:

var arr = [];
for (var tot = 0; tot < 4; tot++) { //creating empty arrays
  arr.push([]);
  for (var i = 0; i < 3; i++) {
    arr[tot].push(i);
  }
}
console.log(JSON.stringify(arr));

我的问题,我需要创建一个数组和推值在一个数组带有一次for循环

如果期望结果是console.log(JSON.stringify(arr));//[[0,1,2],[0,1,2],[0,1,2],[0,1,2]],是否可以将初始数组项压入同一数组?

如果arr.length0,则将tot, tot + 1, tot + 2推到arr,否则将arr[0]推到arr

var arr = [];
for (var tot = 0; tot < 4; tot++) {
    if (!arr.length) arr.push([tot, tot + 1, tot + 2])
    else arr.push(arr[0])
}
console.log(JSON.stringify(arr));

只需使用函数方法Function.prototype.apply()和指定长度的对象和数组方法Array.prototype.map()来填充另一个数组和值。

var n = 3,
    array = Array.apply(Array, { length: n }).map(function () {
        return Array.apply(Array, { length: n }).map(function (_, i) {
            return i;
        });
    });
document.write('<pre>' + JSON.stringify(array, 0, 4) + '</pre>');