Arrays 如何向数组中的每个对象添加一个参数?

Arrays 如何向数组中的每个对象添加一个参数?,arrays,reactjs,object,Arrays,Reactjs,Object,所以我有一些案子 将类别添加到数组中处于状态的每个对象 POST是对象的数组(这些对象是wordpress文章,有很多参数) 它被保存在以下状态: constructor(props) { super(props); this.state = { posts: [], postCategories: [], }; } 后来我从其他端点获取数据(每个帖子的类别,来自另一个端点) 后分类-每个帖子中的每个类别(但它不是枚举字符串(1、2、3等))

所以我有一些案子

将类别添加到数组中处于状态的每个对象

POST是对象的数组(这些对象是wordpress文章,有很多参数)

它被保存在以下状态:

constructor(props) {
    super(props);
    this.state = {
      posts: [],
      postCategories: [],
    };
  }
后来我从其他端点获取数据(每个帖子的类别,来自另一个端点)

后分类-每个帖子中的每个类别(但它不是枚举字符串(1、2、3等))

我需要向数组中的每个对象添加参数-posts取决于e.num (如果帖子[0]具有postcategory 1,我需要插入参数名称:类别,内容取决于枚举

例如,对于post[0],它的postcategory=2,因此我需要将参数name:category的值注入“category2”


此外,解决方案应该包括数组-循环中的所有对象。

您可以使用
映射
排列
来实现这一点

const result = array.map(item =>{
    if(condition1)
        return {...item, newProperty: 'foo'}

    if(condition2)
       return {...item, anotherProp: 'bar'}

    return item
})

您可以使用
map
spread
来实现这一点

const result = array.map(item =>{
    if(condition1)
        return {...item, newProperty: 'foo'}

    if(condition2)
       return {...item, anotherProp: 'bar'}

    return item
})

要更改从获取中接收的数据,必须更改map函数中的数据。整个数组将返回到
newPostData
,然后可以将其设置为状态

fetch(postsUrl)
.then(data => data.json())
.then(data => {
  const newPostData = data.map(item => {
    if (item.categories === 2) {
      item.myNewValue = 'the new value if categories is 2';
    }
    if (item.categories === 3)
      console.log('Categories equals 3')

    return item
  }

  this.setState({posts: newPostData})
})

要更改从获取中接收的数据,必须更改map函数中的数据。整个数组将返回到
newPostData
,然后可以将其设置为状态

fetch(postsUrl)
.then(data => data.json())
.then(data => {
  const newPostData = data.map(item => {
    if (item.categories === 2) {
      item.myNewValue = 'the new value if categories is 2';
    }
    if (item.categories === 3)
      console.log('Categories equals 3')

    return item
  }

  this.setState({posts: newPostData})
})

哇,谢谢,它正在向每个对象添加参数,现在我将尝试将其与我的问题匹配:)好的,我将其实现到我的解决方案中,并且通常是有效的,现在我尝试使用条件解决问题如果你想发布另一个问题!如果(item.categories==2),如果(item.categories==3)这些条件没有将参数名称添加到数组的每个对象中,您是否可以发布另一个问题来更好地解释?评论太乱了!哇,谢谢,它正在向每个对象添加参数,现在我将尝试将其与我的问题匹配:)好的,我将其实现到我的解决方案中,并且通常是有效的,现在我尝试使用条件解决问题如果你想发布另一个问题!如果(item.categories==2),如果(item.categories==3)这些条件没有将参数名称添加到数组的每个对象中,您是否可以发布另一个问题来更好地解释?评论太乱了!你在改变状态你在改变状态