拼接功能无法正常工作

时间:2014-06-02 14:52:57

标签: javascript

我有一个这样的数组:

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之外的所有数组元素。

任何人都可以帮我解决我的问题吗?

3 个答案:

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