0

私がこのオブジェクトを持っている場合:

[
    { "firstName":"John" , "lastName":"Doe" },
    { "firstName":"Anna" , "lastName":"Smith" },
    { "firstName":"Peter" , "lastName":"Jones" }
]

そして私はこれが欲しい:

[
    { "firstName":"John" , "lastName":"Doe", "status":"Normal"  },
    { "firstName":"Anna" , "lastName":"Smith", "status":"Normal" },
    { "firstName":"Peter" , "lastName":"Jones", "status":"Normal" }
]

Javascriptでそれを行う最も簡単な方法は何ですか?一般的なライブラリの1つを使用するワンライナーの方法はありますか?私jQuery.each(function...) はうまくいくことを知っていますが、もっと良い方法があるかもしれないと思っています。私はその逆にも興味があり、2番目のものを最初のものに変更します('status'プロパティを削除します)。

4

4 に答える 4

1

.mapArray のメソッドを使用します。

var new_arr = arr.map(function(el) {
  el['status'] = 'Normal';
  return el;
});

または、古いブラウザーをサポートするには、jQuery の map メソッドを使用します。

var new_arr = $.map(arr, function(el) {
  el['status'] = 'Normal';
  return el;
});

ライブデモ。

于 2012-10-02T10:57:30.050 に答える
1
for(var key in persons)
{
    persons[key].status = "Normal";
}

私はそれよりも速い方法を知りません。

于 2012-10-02T10:58:21.360 に答える
1
var array = [{a:1},{a:2}];
array.forEach(function(object) {​​​ object["b"] = 3; });

二つ目:

array.forEach(function(object) { delete object["b"]; });

Array.forEach は Array.map に似ていますが、新しい配列を作成しません。https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEachで提供されている .forEach 実装を含めることで、古いブラウザーでもこれを使用できます。

于 2012-10-02T10:59:34.650 に答える
0
obj.forEach(function(item){item.status = "normal"});
于 2012-10-02T10:59:14.770 に答える