如何删除Array对象中的项目

时间:2013-02-27 15:50:17

标签: jquery arrays object

早上好,我是新来的,创造了这个新话题,因为我没有找到任何可以消除我怀疑的东西。

我有以下情况。

我有一个对象:

var ITEMS = new Object ();

此对象中的

有一组电话号码。

ITEMS.Phones = new Array ();

在该数组中添加另一个对象,如下所示......

var_number = $ ("# Number"). val ();
ITEMS.Phones.push (new Object ({phoneid: "", Number: var_number}));

在此之前一切正常,只是无法删除此数组中的对象,我正在尝试以下方法:

ITEMS.Phones.splice ($. InArray (removes ITEMS.Phones), 1);

但我没有成功。

有没有人知道解决问题的方法,或者更简单的方法来实现这个问题?

1 个答案:

答案 0 :(得分:2)

如果它是实际代码而不是伪代码,则行:

ITEMS.Phones.splice ($. InArray (removes ITEMS.Phones), 1);

...至少有一个语法错误和另一个错误(InArray应该是inArray)。你走在正确的轨道上,splice做你想做的事。

你还没有说removes是什么,但是如果它是你要删除的对象的引用,那么就行了

ITEMS.Phones.splice ($.inArray(removes, ITEMS.Phones), 1);

...将删除它。但请注意,它必须是对相同对象的引用,因为inArray使用===来搜索对象。它不能是对不同但等效的对象的引用。

假设您要删除具有给定Number属性的对象的条目。你可以这样做:

var_number = /* ...the number you want to remove...*/
$.each(ITEMS.Phones, function(index, entry) {
    if (entry.Number === var_number) {
        ITEMS.Phones.splice(index, 1); // Removes the entry
        return false;                  // Terminates the $.each loop
    }
});