-2

早上好,伙计们,我是新来的,并创建了这个新主题,因为我没有找到任何可以消除我怀疑的东西。  

我有以下情况。  

我有一个对象:  

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);

 

但我没有成功。  

有谁知道解决我的问题的方法,或者更简单的实现方法?

4

1 回答 1

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
    }
});
于 2013-02-27T15:56:32.800 回答