我有一个这样的数组:
data: Array[8]
0: 3054
1: 1986
2: 1065
3: 1053
4: 666
5: 1423
6: 137
7: NaN
我想将此数组缩小到以下内容以删除NAN,所以我想要这样的东西:
data: Array[7]
0: 3054
1: 1986
2: 1065
3: 1053
4: 666
5: 1423
6: 137
根据此页面:link
我使用splice如下:
allData[i].splice(allData[i].length-1, 1)
但它会删除除NAN之外的所有数组元素。
任何人都可以帮我解决我的问题吗?
答案 0 :(得分:3)
如果它只是您要删除的最后一个值,则可以调整数组的长度:
someArray.length = someArray.length-1;
答案 1 :(得分:2)
使用带有负值的slice
来消除结束:
allData[i].slice(0, -1)
文档参考:
作为负索引,end表示从序列末尾开始的偏移量。 slice(2,-1)通过序列中倒数第二个元素提取第三个元素。
但请注意,实际数组未被触及,因为slice
克隆了数组。
因此,如果你想操纵实际的数组,你需要像这样重新分配它:
allData[i] = allData[i].slice(0, -1)
答案 2 :(得分:1)
如果您要删除所有NaN
元素,可以使用filter代替。
allData[i] = allData[i].filter(function(e) {
return !isNaN(e);
});