我有一个像
的对象数组
[
{
"id" : 1,
"title" : "name1",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, nesciunt hic aut? Saepe nihil autem nesciunt, ab quisquam animi, aperiam fugit? Ut velit a, in perspiciatis error inventore. Dolorum, eligendi.",
"image" : "sampledata/products/1.jpg",
"price" : 10
},
{
"id" : 2,
"title" : "name2",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, nesciunt hic aut? Saepe nihil autem nesciunt, ab quisquam animi, aperiam fugit? Ut velit a, in perspiciatis error inventore. Dolorum, eligendi.",
"image" : "sampledata/products/2.jpg",
"price" : 100
},
{
"id" : 3,
"title" : "name3",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, nesciunt hic aut? Saepe nihil autem nesciunt, ab quisquam animi, aperiam fugit? Ut velit a, in perspiciatis error inventore. Dolorum, eligendi.",
"image" : "sampledata/products/3.jpg",
"price" : 200
}
]
我希望为每个obj添加新元素,“count”:12,我尝试使用.push执行此操作,但它会将计数添加到数组的末尾,而不是将其添加到每个obj,如何我可以解决这个问题吗?
答案 0 :(得分:3)
for(elem of array){
elem["count"]=12;
}
//OR
for(key in array){
array[key]["count"]=12;
}
//OR
array.forEach(function(elem){
elem["count"]=12;
}
//OR
newarray=array.map(function(el){
return el["count"]=12,el;
}
你不能添加到多个元素,你必须循环并添加到每个元素。 这取决于你的方式(上面的例子)。
同样推送不是对象的数组(推送只添加一个值而不是一个键,一个对象需要一个键值对)。
答案 1 :(得分:1)
因为你将很容易使用地图。试试这个:
var result = [
{
"id" : 1,
"title" : "name1",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, nesciunt hic aut? Saepe nihil autem nesciunt, ab quisquam animi, aperiam fugit? Ut velit a, in perspiciatis error inventore. Dolorum, eligendi.",
"image" : "sampledata/products/1.jpg",
"price" : 10
},
{
"id" : 2,
"title" : "name2",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, nesciunt hic aut? Saepe nihil autem nesciunt, ab quisquam animi, aperiam fugit? Ut velit a, in perspiciatis error inventore. Dolorum, eligendi.",
"image" : "sampledata/products/2.jpg",
"price" : 100
},
{
"id" : 3,
"title" : "name3",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, nesciunt hic aut? Saepe nihil autem nesciunt, ab quisquam animi, aperiam fugit? Ut velit a, in perspiciatis error inventore. Dolorum, eligendi.",
"image" : "sampledata/products/3.jpg",
"price" : 200
}
].map(function(item) {
item["test"] = "new item";
return item;
});
console.log(result);
答案 2 :(得分:0)
您可以使用forEach方法添加对象的属性。
和 push 不是添加对象属性的方法。
var arr=[
{
"id" : 1,
"title" : "name1",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, nesciunt hic aut? Saepe nihil autem nesciunt, ab quisquam animi, aperiam fugit? Ut velit a, in perspiciatis error inventore. Dolorum, eligendi.",
"image" : "sampledata/products/1.jpg",
"price" : 10
},
{
"id" : 2,
"title" : "name2",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, nesciunt hic aut? Saepe nihil autem nesciunt, ab quisquam animi, aperiam fugit? Ut velit a, in perspiciatis error inventore. Dolorum, eligendi.",
"image" : "sampledata/products/2.jpg",
"price" : 100
},
{
"id" : 3,
"title" : "name3",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, nesciunt hic aut? Saepe nihil autem nesciunt, ab quisquam animi, aperiam fugit? Ut velit a, in perspiciatis error inventore. Dolorum, eligendi.",
"image" : "sampledata/products/3.jpg",
"price" : 200
}
]
arr.forEach(function(a){a["count"] = 12})
console.log(arr);
答案 3 :(得分:0)
您可以使用Array#forEach
循环,并使用property accessor
var data = [{ id: 1, title: "name1", description: "Lorem ipsum ...", image: "sampledata/products/1.jpg", price: 10 }, { id: 2, title: "name2", description: "Lorem ipsum ...", image: "sampledata/products/2.jpg", price: 100 }, { id: 3, title: "name3", description: "Lorem ipsum ...", image: "sampledata/products/3.jpg", price: 200 }];
data.forEach(function (a) {
a.count = 12;
});
console.log(data);

.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 4 :(得分:0)
如下......
var arr=[
{
"id" : 1,
"title" : "name1",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, nesciunt hic aut? Saepe nihil autem nesciunt, ab quisquam animi, aperiam fugit? Ut velit a, in perspiciatis error inventore. Dolorum, eligendi.",
"image" : "sampledata/products/1.jpg",
"price" : 10
},
{
"id" : 2,
"title" : "name2",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, nesciunt hic aut? Saepe nihil autem nesciunt, ab quisquam animi, aperiam fugit? Ut velit a, in perspiciatis error inventore. Dolorum, eligendi.",
"image" : "sampledata/products/2.jpg",
"price" : 100
},
{
"id" : 3,
"title" : "name3",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, nesciunt hic aut? Saepe nihil autem nesciunt, ab quisquam animi, aperiam fugit? Ut velit a, in perspiciatis error inventore. Dolorum, eligendi.",
"image" : "sampledata/products/3.jpg",
"price" : 200
}
];
arr.forEach(function (obj) {
obj.count = 12;
});
alert(arr[0].count);
alert(arr[1].count);
alert(arr[2].count);
答案 5 :(得分:0)
简单的方法是你需要使用循环
arr是你的数组。
for(var i=0;i<arr.length;i++) {
var obj = arr[i];
obj.count = 12;
}
答案 6 :(得分:0)
let arr = [
{
"id" : 1,
"title" : "name1",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, nesciunt hic aut? Saepe nihil autem nesciunt, ab quisquam animi, aperiam fugit? Ut velit a, in perspiciatis error inventore. Dolorum, eligendi.",
"image" : "sampledata/products/1.jpg",
"price" : 10
},
{
"id" : 2,
"title" : "name2",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, nesciunt hic aut? Saepe nihil autem nesciunt, ab quisquam animi, aperiam fugit? Ut velit a, in perspiciatis error inventore. Dolorum, eligendi.",
"image" : "sampledata/products/2.jpg",
"price" : 100
},
{
"id" : 3,
"title" : "name3",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, nesciunt hic aut? Saepe nihil autem nesciunt, ab quisquam animi, aperiam fugit? Ut velit a, in perspiciatis error inventore. Dolorum, eligendi.",
"image" : "sampledata/products/3.jpg",
"price" : 200
}
]
arr.forEach((val) =>{val['count'] = 12;})
console.log(arr);
希望这会有所帮助......