2017-10-09 11 views
0

ワイルドカードを使用してオブジェクトからいくつかのアイテムを削除しようとしています。それが重要な出発を持つすべての要素を削除しますワイルドカードを使用してオブジェクトからプロパティを削除する

delete myObject['id_2_' + *] 

myObject = { 
    id_0: {...}, 
    id_1: {...}, 
    id_2_radio_0: {...}, 
    id_2_radio_1: {...}, 
    id_2_radio_2: {...}, 
    id_5: {...}, 
    id_21: {...} 
} 

そして、私はこのような何か(擬似コード)を行うことができるようにしたいと思います: オブジェクトは、このようになります。 "id_2_"で

これを行うには合理的な方法はありますか?いずれか、または私のワイルドカードと一致するすべてのキーの配列を収集し、その配列を介してすべての要素を削除します。

私は私の問題の記述であまりにも混乱していないことを願っています!

は、ここで実際のJSONのサンプルです:

{ 
    "jy-id-1_radio_0":{ "label":"alternativ 1", "reference":"jy-id-1" }, 
    "jy-id-1_radio_1":{ "label":"alternativ 2", "reference":"jy-id-1" }, 
    "jy-id-2":{ "label":"kryssruta", "reference":"jy-id-2" }, 
    "jy-id-3":{ "label":"kryssruta", "reference":"jy-id-3" } 
} 
+0

あなたはサンプルJSONを共有していただけますか? – Rajesh

+1

それで、配列myArrayは___is___ですか?それはオブジェクトのように見えます。 – Cerbrus

+0

あなたの質問を詳しく書いてください:投稿した構造は配列ではありません – RomanPerekhrest

答えて

1

文字列が与えられたパターンで始まる場合は、キーを反復処理し、削除できます。

var object = { 
 
    id_0: {}, 
 
    id_1: {}, 
 
    id_2_radio_0: {}, 
 
    id_2_radio_1: {}, 
 
    id_2_radio_2: {}, 
 
    id_5: {}, 
 
    id_21: {} 
 
}; 
 

 
Object.keys(object).forEach(function (k) { 
 
    if (k.startsWith('id_2_')) { 
 
     delete object[k]; 
 
    } 
 
}); 
 

 
console.log(object);

関連する問題