簡體   English   中英

如何將數組值推到另一個數組對象值javascript

[英]how to push array value to another array object value javascript

我有這樣的數據響應

{
"data": {
  "product": {
    "colors": ["#3498db", "#00ccff"],
    "items": [
     {
       "label": "Phone",
       "value": "23.00"
     },
     {
       "label": "Notebook",
       "value": "3.00"
     }
    ]
   }
 }
}

然后我要推動項目內部的顏色

預期:項目具有每個索引的三(3)個變量

items: [
 {
  label: phone,
  value: 23.00,
  color: #3498db
 }
]

我嘗試使用push和concat,但出現錯誤“無法讀取未定義的屬性'data'”

這是我的代碼

generaliseData(dashboardC) {
  let genData = Object.assign({}, dashboardC)
    if (genData.product.items.length > 0) {
      for (let i of genData.product.items) {
        i.value = parseInt(i.value)
          for (let j of genData.product.colors) {
            i = i.push(j)
          }
       }
      console.log(genData)
    }
 }

您可以使用map遍歷列表,期望顏色的長度等於項目的長度

 const response = { "data": { "product": { "colors": ["#3498db", "#00ccff"], "items": [ { "label": "Phone", "value": "23.00" }, { "label": "Notebook", "value": "3.00" } ] } } }; function addColorToItem(response) { const product = response.data.product; const colors = product.colors; const items = product.items; return items.map((item, index) => { item.color = colors[index]; return item; }) } console.log(addColorToItem(response)); 

您可以迭代項目並分配顏色。

 var response = { data: { product: { colors: ["#3498db", "#00ccff"], items: [{ label: "Phone", value: "23.00" }, { label: "Notebook", value: "3.00" }] } } }, temp = response.data.product; temp.items.forEach((o, i) => o.color = temp.colors[i]); console.log(response); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

您可以為結果使用一個簡單的forEach()循環:

 var data = { "product": { "colors": ["#3498db", "#00ccff"], "items": [{ "label": "Phone", "value": "23.00" }, { "label": "Notebook", "value": "3.00" } ] } }; data.product.items.forEach((item, index) => item.color = data.product.colors[index]); console.log(data); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM