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

...少なくとも 1 つの構文エラーと 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 に答える