如何使用useState挂钩将属性添加到对象数组内部的对象

时间:2020-09-24 03:05:34

标签: arrays reactjs object react-hooks

我有一个由useState挂钩创建的对象数组:

const [arrayOfObjects, setArrayOfObjects] = useState([]);

setArrayOfObjects([{id:1}, {id:2}, {id:3}]);

如何通过setArrayOfObjects函数将属性添加到每个对象,这样它将成为:

[
 {
  id:1,
  name: "one",
 },
 {
  id:2,
  name: 'two',
 },
 {
  id:3,
  name: 'three',
 },
]

谢谢!

2 个答案:

答案 0 :(得分:-1)

为此,您可以在数组类型中使用map运算符。这将返回一个新数组,其中您的数据已转换(映射)成其他形式:

let newarrayOfObjects = arrayOfObjects.map(e => {
return {
  id: e.id,
  name: someVariableWithTheName,
 }
});
setArrayOfObjects(newarrayOfObjects);

如果您需要元素的索引来执行某操作,则map方法实际上需要两个参数,第一个是元素,第二个是元素的索引,因此可以这样使用代码:

let newarrayOfObjects = arrayOfObjects.map(e, index => {
return {
  id: e.id,
  name: index,
 }
});
setArrayOfObjects(newarrayOfObjects);

答案 1 :(得分:-1)

定义数组以添加和使用JavaScript数组映射功能。

const additionalArr = [{name: 'one'}, {name: 'two'}, {name: 'three'}];
const newArrayOfObjects = arrayOfObjects.map((obj, idx) => ({
  ...obj,
  ...additionalArr[idx]
}));

setArrayOfObjects(newArrayOfObjects);