是否可以从JavaScript数组中删除条目?

时间:2009-12-16 16:03:51

标签: javascript json

是否可以从JavaScript数组中删除条目?当使用delete运算符时,列表中的条目将替换为null。

data = [{pid:30, pname:abc}, {pid:31, pname:def}, {pid:32, pname:zxc}]
delete data[1]

变为:

data = [{pid:30, pname:abc}, null, {pid:32, pname:zxc}]

仅供参考我是从ajax电话回来的json。返回的值被解析为var data = YAHOO.lang.JSON.parse(result.value || '[]')

3 个答案:

答案 0 :(得分:1)

有许多图书馆处理JSON内容的序列化和反序列化。其中许多库也允许您操纵JSON中的数据。

根据您使用的语言决定您决定使用哪个库。

更多细节会有所帮助。

答案 1 :(得分:1)

在列表中排序然后split()怎么样?

答案 2 :(得分:0)

这是JavaScript Array类的问题。删除值总会留下一个漏洞。你需要创建一个没有洞的新数组。这样的事情可能会有所帮助:

    Array.prototype.removeItem = function(index){
        var newArray = []
        for (var i =0; i < this.length; ++i){
            if (i==index||typeof this[i] === "undefined") continue;
            newArray.push(this[i]);
        }
        return newArray;
    }

    var a1 = [1,2,3,4,5]
    delete a1[1]
    alert(a1.join())
    //prints 1,,3,4,5

    var a2 = a1.removeItem(3)
    alert(a2.join())
    //prints 1,3,5 -- removed item 3 and previously "deleted" item 1