值不会添加到多维数组中

时间:2018-02-20 13:08:07

标签: javascript

第一次触发函数我得到了这个结果:

output1:test

输出2 2警报未触发。我知道在警报中可能未定义某些内容有人知道为什么在多维数组中不会添加该值吗?

我希望在false1后显示:

output2:test2

此外,如果你想在这里摆弄代码,它是: https://jsfiddle.net/ndf0sjgf/1/



var carSelectedArray = [
  [null]
];

addRow(carSelectedArray);
addRow(carSelectedArray);

function addRow(carSelectedArray) {
  var arrayempty = false;
  if (carSelectedArray[0][0] == null || carSelectedArray.length == 0) {
    arrayempty = true;

  } else {
    arrayempty = false;
  }


  if (arrayempty == true) {
    carSelectedArray[0][0] = "test";
    alert("output1:" + carSelectedArray[0][0]);

  } else {

    carSelectedArray[1][0] = "test2";
    alert("output2:" + carSelectedArray[1][0]);

  }
}




1 个答案:

答案 0 :(得分:0)

你的循环效果很好,但你没有很好地定义你的数组。

这里只有一个维度:

var carSelectedArray = [[null]];

所以替换为:

var carSelectedArray = [[],[]];

PS:null不是必需的

在函数的开头,将arrayempty定义为false,这样就可以删除它:

else {
    arrayempty = false;
  }

此处的解决方案:https://plnkr.co/edit/Qikalr0jc54R3MRSea4G?p=preview



var carSelectedArray = [[],[]];

addRow(carSelectedArray);
addRow(carSelectedArray);

function addRow(carSelectedArray) {
  var arrayempty = false;
  if (carSelectedArray[0][0] == null || carSelectedArray.length == 0) {
    arrayempty = true;
  }


  if (arrayempty == true) {
    carSelectedArray[0][0] = "test";
    alert("output1:" + carSelectedArray[0][0]);

  } else {
    carSelectedArray[1][0] = "test2";
    alert("output2:" + carSelectedArray[1][0]);

  }
}