マイオブジェクトの私の配列から不要なキーを削除します。は、私の場合には動作していないオペレータを削除...ユーザーID、それからユーザー名のようにキーを削除する方法...私は、キーを選択した意味</p> <p>オブジェクト
for (i=0 i <obj.length; i ++) {
delete obj[i]['keyName'];
}
上記は動作しません。どちらもエラーをスローしません。他の方法...
マイオブジェクトの私の配列から不要なキーを削除します。は、私の場合には動作していないオペレータを削除...ユーザーID、それからユーザー名のようにキーを削除する方法...私は、キーを選択した意味</p> <p>オブジェクト
for (i=0 i <obj.length; i ++) {
delete obj[i]['keyName'];
}
上記は動作しません。どちらもエラーをスローしません。他の方法...
、私はあなたがやっている間違いわからないです..
バイリンガルとこのアプローチにも感謝しています。 –
@John:アレイ上で 'for ... in'ループを使うのは悪い習慣です。反復の順序は保証されず、インデックス以外の列挙可能なプロパティも繰り返し処理されます。あなたがこのソリューションを実装しているかどうかを考えるだけです。 –
@Andy E:あなたはフィドルや他の反応について話していますか?私はちょうど削除が動作するOPを示していました... – Thalaivar
i=0
の後に;
が見つかりませんでした。 MyObject.PatientVitalsGetResult.Vitals
'MyObject.PatientVitalsGetResult.Vitals' actualy –
@Molecule - 良いキャッチ、ありがとう。 – Quentin
delete
を使用しないでくださいする必要がありますobj
さらに
、。それを削除するのではなく、要素をundefinedに設定します。代わりに、splice
を使用してください。
var i;
for(i = 0; i < obj.length; i++){
obj[i].splice('keyName',1);
}
@wanovok:プロパティスライスibオブジェクトを呼び出すことができないというエラーが表示されます。 –
個々の配列要素ではなく、配列内の各オブジェクトから名前付きキーを削除することが目的です。 – Quentin
これには標準的な方法はありません。古いObject
が不要なプロパティをフィルタリングの条件付きコピーを実行する必要があります。
var oldObject = { /* your object */ } ;
var newObject = { } ;
var filter = { "UserID": true , "UserName": true } ;
for(var key in oldObject)
if(!(key in filter)) newObject[key] = oldObject[key] ;
そして、次のコードで取得newObject
を使用しています。
Array.prototype.containsValue = function (value) {
for (var k in this) {
if (!this.hasOwnProperty(k)) {
continue;
} //skip inherited properties
if (this[k] == value) {
return true;
}
}
return false;
};
for (var key in Object) {
var unwantedKeys = ['UserName', 'UserID'];
if (unwantedKeys.containsValue(key)) continue;
// Play with your Object it won't contain these unwanted keys.
}
を削除する方法
var vitals = obj["PatientVitalsGetResult"]["Vitals"];
for (i=0; i < vitals.length; i++) {
delete(vitals[i]["UserID"])
};
'DELETE'必要があります作業。フルコードを表示 – Raynos
あなたはおそらく間違った方法で 'for'ループを使用しています。 – duri