![](/img/trans.png)
[英]How do I convert an array of objects into an object (dynamically) in JavaScript
[英]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.