第一次触发函数我得到了这个结果:
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]);
}
}

答案 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]);
}
}