我是javascript新手。我这里有一个小问题。
javascript if
/ else
语句是否与其他语言(c ++,java,python)不同?
这是我遇到的问题。
i == 0
和i == 1
从myArray进入我的新数组。为什么我不能将其他元素分离到新数组中?我以myArray
为例。在我真正的问题中,我不知道有多少元素。这就是为什么我设置了变量threetimes
和increaseByThree
的原因。我只是想通过使用for
循环将名称,邮政编码和金额分成不同的数组。
var nameArray = [], zipCodeArray = [], totalAmountArray = [];
var threeTimes = 3;
var increaseByThree = 0;
var myArray = ["Eric ", "94990", "540", "Sam ", "303030", "350"];
for(var i = 0; i < myArray.length; i++) {
threeTimes += 3;
increaseByThree += 3;
if(i == threeTimes || i == 0) {
nameArray.push(myArray[i]);
} else if(i == increaseByThree || i == 1) {
zipCodeArray.push(myArray[i]);
} else {
totalAmountArray.push(myArray[i]);
}
}
console.log(nameArray)
console.log(zipCodeArray)
console.log(totalAmountArray)
答案 0 :(得分:1)
假定您的数组将采用[a0,b0,c0,.....,aN,bN,cN]格式,其中N是“条目”的数量-1;您可以通过以下方式简化确定值的逻辑:
const myArray = ["Eric ", "94990", "540", "Sam ", "303030", "350"];
const nameArray = [], zipCodeArray = [], totalAmountArray = [];
for(var i = 0; i < myArray.length; i++) {
switch (i % 3) {
case 0:
nameArray.push(myArray[i]);
break;
case 1:
zipCodeArray.push(myArray[i]);
break;
case 2:
totalAmountArray.push(myArray[i]);
break;
}
}
console.log(nameArray)
console.log(zipCodeArray)
console.log(totalAmountArray)
这将适用于任何大小的数组,并消除了不必要的变量和if-else块的需要。这是有关javascript开关块的有用链接 (https://www.w3schools.com/js/js_switch.asp),它比if-else块要干净得多,在这种情况下可以更清楚地表明其意图。