如果我有这个对象:
[
{ "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中最简单的方法是什么?是否有使用其中一个公共库的单行方式?我知道jQuery.each(function...)
会起作用,但我认为可能有更好的方法。我也对反向感兴趣,将第二个更改为第一个(删除'status'属性)。
答案 0 :(得分:1)
使用数组的.map
方法。
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;
});
的 The live demo. 强> 的
答案 1 :(得分:1)
for(var key in persons)
{
persons[key].status = "Normal";
}
我不知道比这更快的方式。
答案 2 :(得分: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实现答案 3 :(得分:0)
obj.forEach(function(item){item.status = "normal"});