繁体   English   中英

将新元素推送到多维数组javascript中的obj数组

[英]push new element to array of obj in multidimensional array javascript

我有一个像这样的对象数组

 [ { "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,我该如何解决这个问题?

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;
}

您不能添加多个元素,必须循环槽并添加到每个元素。 这取决于您的操作方式(在上面的示例中)。

同样,对数组而不对对象进行推(推仅添加一个值而不是键,对象需要一个键值对)。

为您将易于使用的地图。 尝试这个:

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);

您可以使用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); 

您可以使用Array#forEach循环并使用属性访问器添加新属性

 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; } 

如下..

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);

简单的方法是您需要使用循环

arr是您的数组。

for(var i=0;i<arr.length;i++) {
      var obj = arr[i];
     obj.count = 12;
}

  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); 

希望这可以帮助....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM