修改数组对象的值
change the value of objects of the array
这是我的数组
Array1 = [{year: "2013", fruit: "banana", quantity: 1},{year: "2014", fruit: "orange", quantity: 1},{year: "2014", fruit: "banana", quantity: 2}]
和复制Array1的函数:
var Array2 = Array1;
for (var i = 0, len = Array1.length; i < len; i++) {
Array2[i] = Array1[i];
}
但是我想在Array2中改变所有的值我的键"year"并把值"AllYear":
Array2 = [{year: "AllYear", fruit: "banana", quantity: 1},{year: "AllYear", fruit: "orange", quantity: 1},{year: "2014", fruit: "banana", quantity: 2}]
使用map
,但要确保返回一个新对象:
var Array2 = Array1.map(function (el) {
return { fruit: el.fruit, year: 'AllYear', quantity: el.quantity }
});
演示//js
var Array2 = Array1
for (var i = 0, len = Array1.length; i < len; i++) {
Array2[i].year = "AllYear";
}
参考这个解决方案:Jsfiddle
你可以这样做
Array2 = Array1.slice(0); //copy array1 elements to array2
Array2 = Array2.map(function (el) {
var copy = {};
for (var attr in el) {
if (el.hasOwnProperty(attr)) copy[attr] = el[attr];
}
copy.year = 'AllYear';
return copy ;
});
var Array2 = Array1;
$.each(Array2,function(index,value) {
value.year = "AllYear";
});//returns what you excepted
相关文章:
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 在Javascript中转换对象数组
- 在JavaScript中通过索引从对象数组中获取值
- Backbone虹吸以获取对象数组
- 如何在DataTables 2.1中迭代对象数组
- Javascript-根据赋值顺序,按键合并对象数组
- 将事件附加到对象/数组
- jQuery$.inArray()总是返回-1和一个对象数组
- javascript处理一个对象数组以获得一个新的对象数组
- javascript在数组中获取对象数组中键的所有不同值
- 在对象数组中查找多个值的d3范围
- Undercore.js获取对象数组中键对象的值
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 如何通过json对象数组为嵌套对象赋值
- 如何循环通过2个对象数组并通过匹配id进行合并
- 为对象数组创建列表项
- 如何使用javascript合并两个对象数组
- JSON到对象数组,并向每个对象添加项
- JavaScript:从对象数组中获取唯一值及其计数
- 按不同项目对对象数组进行排序