【问题标题】:How do I put an object inside another object based on the same key?如何根据相同的键将一个对象放入另一个对象中?
【发布时间】:2023-03-14 00:20:01
【问题描述】:

我正在使用 Reactjs,我的数据如下所示:

const this.state.singlePost = [{
        name: 'Johnny',
        age: 20,
        birthPlace: 'Germany'
    },
    {
        name: 'Samuel',
        age: 22,
        birthPlace: 'France'
    }
]

let this.state.post = [{
        email: 'john@gm.co',
        number: 4567887654
    },
    {
        email: 'samuel@gm.co',
        number: 0987655881
    },
]
    

我想做这样的事情:

let editedPost = [{
        name: 'Johnny',
        age: 20,
        birthPlace: 'Germany',
        email: 'john@gm.co',
        number: 4567887654
    },
    {
        name: 'Samuel',
        age: 22,
        birthPlace: 'France',
        email: 'samuel@gm.co',
        number: 0987655881
    }
]
    

这可能是一个愚蠢的问题,但我在这个问题上卡了几个小时,有人可以帮帮我吗?我在this.state.singlePost 中有 5 个项目,this.state.post 中有 10 个项目。如何像在editedPost 中那样将this.state.singlePost 中的内容放入this.state.post

【问题讨论】:

  • 那么这些都是变量还是前两个应该是反应组件状态的一部分?无论哪种方式,当前的语法都不正确。阅读本文以了解如何使用反应状态 reactjs.org/docs/state-and-lifecycle.html

标签: arrays reactjs object


【解决方案1】:

理论上,您可以在两个对象之间有一个公共键,您可以在其上进行合并,因为没有您将依赖匹配对象的索引。

let post = [
  {email: 'john@gm.co',
   number: 4567887654},
  {email: 'samuel@gm.co',
   number: 987655881}
  ]

 let singlePost = [ 
    {name: 'Johnny', age: 20, birthPlace: 'Germany'}, 
    {name: 'Samuel', age: 22, birthPlace: 'France'}
  ]

let newList = post.map((item, i) => ({...item, ...singlePost[i]}))

console.log(newList)

输出:

[
    {
        email:"john@gm.co",
        number:4567887654,
        name:"Johnny",
        age:20,
        birthPlace:"Germany"
    },
    {
        email:"samuel@gm.co",
        number:987655881,
        name:"Samuel",
        age:22,
        birthPlace:"France"
    }
]

在 Javascript 中有很多方法可以做到这一点。我选择的方式可以防止数据的变异,这可能是你在使用 React 时关心的问题。

【讨论】:

    猜你喜欢
    • 2021-12-24
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 2022-11-19
    相关资源
    最近更新 更多