遍历javaScript对象返回值0和false

时间:2020-01-18 23:44:51

标签: javascript vue.js

我有一个javascript对象数组:

"result": [
    {
        "id": 0,
        "name": "All",
        "entityState": 0
    },
    {
        "id": 1,
        "name": "Phones",
        "entityState": 0
    },
    {
        "id": 2,
        "name": "Laptops",
        "entityState": 0
    },
    {
        "id": 3,
        "name": "Accessories",
        "entityState": 0
    },
    {
        "id": 4,
        "name": "Laptop Bags",
        "entityState": 0
    },
    {
        "id": 5,
        "name": "Cameras",
        "entityState": 0
    }
]

现在,我想向数组中的对象添加一个属性,以便遍历数组,将属性添加到每个对象:

updateCategories(objArray) {
  const newObjArray = [];

  objArray.forEach(obj => {
    const newObject = {
      id: obj.id,
      name: obj.name,
      isActive: false,
    };
   newObjArray.push(newObject);
  });

  return newObjArray;
}

我遇到的问题是newObjArray的内容是这样的:

 newObjArray = [
{
    "id": undefined,
    "name": "All",
    isActive: undefined
},
{
    "id": 1,
    "name": "Phones",
    isActive: undefined
},
{
    "id": 2,
    "name": "Laptops",
    isActive: undefined
},
{
    "id": 3,
    "name": "Accessories",
    isActive: undefined
},
{
    "id": 4,
    "name": "Laptop Bags",
    isActive: undefined
},
{
    "id": 5,
    "name": "Cameras",
    isActive: undefined
}

]

我的问题是:

  • 为什么第一个对象的“ id”值未定义而不是0?
  • 为什么未定义“ isActive”的值而不是false?
  • 我该如何解决导致其密码破裂的问题?

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

尝试一下:

result = result.map(_val =>{
  _val.isActive = false
  return _val
})

这是一个有效的堆叠闪电战, https://stackblitz.com/edit/typescript-incjfr

如果右键单击右侧的白框,检查元素并查看控制台日志,您将看到它提供了正确的结果