我有一个对象数组:
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");
我需要将对象置于反应状态。所以我这样写:
this.setState({user: {...filteredUser}});
当我将控制台用于用户状态时,得到的结果如下:
console.log(this.state.user);
Result => {0:{id: "12347442", name: "ZarNi" , age: 23}} as a result;
我不想要键0。我只想获取这样的对象
{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
op的结果中的第一个元素-并将该用户直接传递到setState中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句