当前位置: 首页 > 知识库问答 >
问题:

如何将数组值推送到另一个数组对象值javascript

孙经艺
2023-03-14

我有这样的数据响应

{
"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,但出现错误“无法读取未定义的属性“数据”

这是我的密码

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

共有3个答案

拓拔浩阔
2023-03-14

您可以使用一个简单的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);
姬心思
2023-03-14

您可以迭代项目并指定颜色。

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);
css prettyprint-override">.as-console-wrapper { max-height: 100% !important; top: 0; }
笪健
2023-03-14

您可以使用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));
 类似资料:
  • 空心我有一些问题和小问题我有3个输入字段我需要在单击时从中获取值将它们分配给对象并将该对象推入数组有人可以帮助我说在哪里查找信息我正在MDN上搜索,但我找不到正确的主题,示例1)将值输入到对象,然后将该对象推入数组 使用html和javascript链接到JSFIDLE

  • 问题内容: 我有两个对象数组。我想基于PermissionObj过滤数据。 这是即将形成的数据库。这是permissionObj中的子数组的数组。 这是静态数据。我想比较基于PermissionObj的数据。 我正在尝试基于 对象 的 PermissionObj数组 过滤 对象 的 数据数组 。这是我尝试的代码。 如果PermissionObj值将与data值匹配。然后显示数据。 我接受的输出将是

  • 我正在尝试使用jolt将数组值作为字符串转换为对象。当我将数组值转换为String时,我无法在对象中获得正确的值。 输入Json: Jolt规格: 预期输出 : 实际产出: 请帮忙。提前谢谢。

  • 问题内容: 假设您有两个数组: 您如何将数组a设置为数组b并使它们保持不同的对象?就像我想到的那样: 但这不起作用,因为它仅使“ a”引用数组b。因此,设置两个数组相等,同时保持它们独立的对象,以遍历一个数组的每个元素并将其设置为另一个数组的唯一方法是吗? 那ArrayList呢?当其中有对象时,如何将一个ArrayList设置为等于另一个? 问题答案: 您可能要使用: 或使用

  • 我有一个类似这样的数组: 我想要一个如下所示的结果对象: 我如何在Javascript中实现这一点?

  • 已更新-arr3中的id属性的顺序应与arr1中的id属性的顺序相同