在JavaScript中填充数组

时间:2017-01-15 19:07:03

标签: javascript arrays

JavaScript的:

我正在尝试填充数组。

var blocks = [];
var blocksCount = 7;


for (var columnIndex = 0; columnIndex < blocksCount; columnIndex++) {
  for (var rowIndex = 0; rowIndex < blocksCount; rowIndex++) {

    blocks[columnIndex][rowIndex] = 'Some Value';

  }
}

错误消息显示:undefined is not an object

我需要做些什么才能让它发挥作用?

4 个答案:

答案 0 :(得分:3)

在尝试为该数组的属性赋值之前,必须将数组分配给bot.api.files.upload({},function(err,response) { //Do something... })

答案 1 :(得分:2)

当您为其分配值blocks[columnIndex]时,未定义

rowIndex。您无法为尚未定义的内容分配值。因此,当columnIndex尚未定义时,即第一次将blocks[columnIndex] = blocks[columnIndex] || []; 定义为空数组。你可以这样做,

var blocks = [];
var blocksCount = 7;


for (var columnIndex = 0; columnIndex < blocksCount; columnIndex++) {
 blocks[columnIndex] = blocks[columnIndex] || [];
  for (var rowIndex = 0; rowIndex < blocksCount; rowIndex++) {
    
    blocks[columnIndex][rowIndex] = 'Some Value';

  }
}

console.log(blocks);

https://regex101.com/r/1oC5R1/1

答案 2 :(得分:1)

目前,您没有多维数组。

var arr = [];
console.log(arr[0]);

将返回undefined并且您正在尝试分配新元素。

您可以克服这个问题并在第一个for循环语句中创建一个多维数组,并在原始blocks数组中创建一个新数组。

 blocks[columnIndex] = [];

然后,您可以将这两个值分配给多维数组。

var blocks = [];
var blocksCount = 7;
        
for (var columnIndex = 0; columnIndex < blocksCount; columnIndex++) {
   blocks[columnIndex] = [];

   for (var rowIndex = 0; rowIndex < blocksCount; rowIndex++) {
     blocks[columnIndex][rowIndex] = 'Some Value';
     console.log(blocks[columnIndex][rowIndex]);
   }
}

https://jsfiddle.net/ybsdL4q7/

答案 3 :(得分:0)

您可以使用from的{​​{1}}构造函数将函数传递给数组创建。这意味着不需要Array循环:)

for