我正在尝试过滤对象数组并根据是否匹配分配多个变量。
这样做的原因是,我可以在字符串文字中使用变量,显示值。
我已经设法将其分解,但我看到我重复了很多,并且认为这不是最有效的方法。
如有任何帮助,我们将不胜感激。
let stats = [{name: "goals", value: 5},
{name: "losses", value: 20},
{name: "wins", value: 48},
{name: "draws", value: 23},
{name: "fwd_pass", value: 1533},
{name: "goal_assist", value: 2},
{name: "appearances", value: 80},
{name: "mins_played", value: 6953},
{name: "backward_pass", value: 308}]
//const { player , stats } = playerData[0]
const appearances = stats.filter(({name} , i) => {
return name == "appearances"
});
const goals = stats.filter(({name} , i) => {
return name == "goals"
});
const assists = stats.filter(({name} , i) => {
return name == "goal_assist"
});
const mins = stats.filter(({name} , i) => {
return name == "mins_played"
});
const fwdPass = stats.filter(({name} , i) => {
return name == "fwd_pass"
});
const backPass = stats.filter(({name} , i) => {
return name == "backward_pass"
});
最佳答案
您的方法为每个变量返回数组。另一种方法是创建一个对象,其键是名称。这样,您将能够使用名称访问并获取特定对象。
let stats = [{name: "goals", value: 5},{name: "losses", value: 20},{name: "wins", value: 48},{name: "draws", value: 23},{name: "fwd_pass", value: 1533},{name: "goal_assist", value: 2},{name: "appearances", value: 80},{name: "mins_played", value: 6953},{name: "backward_pass", value: 308}],
variables = stats.reduce((a, c) => Object.assign(a, {[c.name]: c}), Object.create(null));
console.log(`Access through key: ${variables.fwd_pass.value}`);
关于javascript - ES6 将所有名称过滤为一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53217952/