我有一些js数组。例如:
var array1 ="Apple","Orange","Lemon";
var array2 ="Shop1","Shop2","Shop3";
var array3 ="1","NA","4";
var finalArray=[];
finalArray.push(array1,array2,array3);
每个数组中的项目都链接在一起,因为我正在使用它们来生成图表。但是,如何从finalArray中删除链接的项目,以便如果array3包含'NA',则将从finalArray中删除每个链接的项目。因此,finalArray将包含:
array1 ="Apple","Orange";
array2 ="Shop1","Shop3";
array3 ="1","4";
任何帮助或正确方向的指导都将受到赞赏。
答案 0 :(得分:1)
您可以使用reduce
这里的想法是
NA
。NA
,则将值推入相应的键。NA
,只需简单地返回op即可。
var array1 =["Apple","Orange","Lemon"];
var array2 =["Shop1","Shop2","Shop3"];
var array3 =["1","NA","4"];
var finalArray = array3.reduce((op,inp,index) => {
if( inp != 'NA') {
op.array1.push(array1[index])
op.array2.push(array2[index])
op.array3.push(inp)
}
return op
},{array1:[], array2:[], array3:[]})
console.log(finalArray)
答案 1 :(得分:0)
您可以从末尾开始遍历标志,并拼接finalArray
的所有数组。
var array1 = ["Apple", "Orange", "Lemon"],
array2 = ["Shop1", "Shop2", "Shop3"],
array3 = ["1", "NA", "4"],
finalArray = [array1, array2, array3],
i = array3.length;
while (i--) {
if (array3[i] !== 'NA') continue;
finalArray.forEach(a => a.splice(i, 1));
}
console.log(finalArray);
.as-console-wrapper { max-height: 100% !important; top: 0; }