如何修复解结构的forEach回调参数以返回对象属性

时间:2019-05-07 01:37:25

标签: javascript ecmascript-6 deconstruction

我试图通过破坏forEach回调参数找到匹配的对象,从而遍历用户对象数组以返回用户对象

我已经尝试过像这样运行循环

let users = [];

users.push({   age: 40,   weight: 75,   height: 6,   country: 'Nigeria',   name: 'Charles Odili',   id: 'dfhb454768DghtF' });
         users.push({  age: 20,  weight: 89,  height: 8,  country: 'Nigeria',  name: 'Emeka Mamah',  id: 'dfhb454768Dg' });

let userId = "dfhb454768Dg";

 let user = users.find((user, { id } = user) => {    return { id, name, weight, height, country} = (user.id === userId);

});

console.log(user);

我希望有一个匹配ID的用户对象,当我登录控制台时,该对象会很好。但是当我评估该方法时,它是行不通的

1 个答案:

答案 0 :(得分:0)

我必须承认我不了解您的find表达式在做什么,或者为什么它应该起作用。

我可以告诉你的是写同一件事的更简短,更惯用的方式:let user = users.find(({ id }) => id === userId);

如果我将其替换为您的代码,则会得到以下信息:

let users = [];

users.push({ age: 40, weight: 75, height: 6, country: 'Nigeria', name: 'Charles Odili', id: 'dfhb454768DghtF' });

users.push({ age: 20, weight: 89, height: 8, country: 'Nigeria', name: 'Emeka Mamah', id: 'dfhb454768Dg' });

let userId = "dfhb454768Dg";

let user = users.find(({ id }) => id === userId);

console.log(user);

这似乎也行得通。