簡體   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