Можно ли удалить запись из массива JavaScript? - PullRequest
1 голос
/ 16 декабря 2009

Можно ли удалить запись из массива JavaScript? При использовании оператора удаления запись в списке заменяется на ноль.

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}]

К вашему сведению, я получаю это как json от вызова ajax Возвращаемое значение анализируется как var data = YAHOO.lang.JSON.parse(result.value || '[]')

Ответы [ 3 ]

1 голос
/ 16 декабря 2009

А как насчет sort () и затем splice () списка?

1 голос
/ 16 декабря 2009

Существует множество библиотек, которые занимаются сериализацией и десериализацией контента JSON. Многие из этих библиотек также позволяют вам манипулировать данными из JSON.

В зависимости от того, какой язык вы используете, будет определяться, какую библиотеку вы решите использовать.

Более подробная информация будет полезна.

0 голосов
/ 16 декабря 2009

Это проблема с классом 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...