繁体   English   中英

如何将对象数组转换为 javascript 中的 object?

[英]How do I convert array of objects to object in javascript?

我有一个对象数组:

let userDetail = [{id: "12347442", name: "ZarNi" , age: 23}
{id: "2435457", name: "Michael" , age: 13},
{id: "8639503", name: "John" , age: 18}
]

我将这个数组过滤成:

let filteredUser = userDetail.filter(user => user.id === "12347442");

我需要输入 object 来响应 state。所以我这样写:

this.setState({user: {...filteredUser}});

当我为用户 state 使用控制台时,我得到了这样的结果:

console.log(this.state.user);

Result => {0:{id: "12347442", name: "ZarNi" , age: 23}} as a result;

我不要Key 0,我只想这样得到object

{id: "12347442", name: "ZarNi" , age: 23}

如果数组中的所有记录都有不同的 ID,或者您希望无论如何都使用第一个匹配项,那么它不是您需要的filter - 但find

// const, as you're not expected to change value of that variable
const foundUser = userDetail.find(user => user.id === "12347442");

在这种情况下,您甚至不必担心从该数组中提取第一个元素( filter操作的结果)并将该用户直接传递到 setState 中。

你可以使用find

let userSelected = userDetail.find(x=>x.id === '12347442');

我这样更改了代码,得到了我想要的结果。

    let userDetail = [{id: "12347442", name: "ZarNi" , age: 23},
                      {id: "2435457", name: "Michael" , age: 13},
                      {id: "8639503", name: "John" , age: 18}];

    let user = userDetail.find(user => user.id === "12347442");
 
    this.setstate({user: user});
    console.log(this.state.user);

结果:

{id: "12347442", name: "ZarNi" , age: 23}

如果你的数组长度=1,你必须得到userDetail[0]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM