json 访问同一对象中的属性,而无需在Javascript中声明它

wr98u20j  于 2023-04-08  发布在  Java
关注(0)|答案(1)|浏览(112)

我有一个array of objects,我需要循环通过它来创建一个具有不同属性的新对象。问题是,当创建新对象时,我需要在声明属性之前访问它。
这是我的源对象:

let data = [
  {
    "name": "one",
    "total": 12,
    "fec": "001"
  },
  {
    "name": "one",
    "total": 1,
    "fec": "002"
  },
  {
    "name": "two",
    "total": 5,
    "fec": "001"
  }  
]

这就是我的工作

let result;
data.forEach((item) => {
  result = {
    name: item.name,
    result: data.find((item) => item.fec === '001') ?.total,
    dto: this.result + 5
  }
})

我的问题:如何从forEach()中的dto属性访问result属性

5lhxktic

5lhxktic1#

在将值放入结果对象之前,先将其放入变量中。
您的代码也没有返回所有结果,它一直用不同的对象覆盖result变量。使用map()将所有结果作为数组返回。

let data = [
  {
    "name": "one",
    "total": 12,
    "fec": "001"
  },
  {
    "name": "one",
    "total": 1,
    "fec": "002"
  },
  {
    "name": "two",
    "total": 5,
    "fec": "001"
  }  
];

let result = data.map((item) => {
  let r = data.find((item) => item.fec === '001')?.total;
  return {
    name: item.name,
    result: r,
    dto: r + 5
  }
});

console.log(result);

相关问题