gpt4 book ai didi

javascript - 从对象数组中获取匹配的属性并将它们放入新数组中

转载 作者:行者123 更新时间:2023-11-29 20:35:42 28 4
gpt4 key购买 nike

我有一个具有以下结构的对象数组:

let arr = [
{name: "abc", show: true , display:"ABC"},
{name: "xyz", show: false , display:"XYZ"},
{name: "pqr", show: true , display:"PQR"},
{name: "lmn", show: false , display:"LMN"}
]

我希望输出是两个数组,一个用于 show:true,另一个用于 show:false,即基于 show 的值 属性。理想情况下,给我两个数组的单个函数会很棒。我期待下一个输出:

arr1 = ["abc", "pqr"]
arr2 = ["xyz", "lmn"]

我目前的做法是:

// Approach I have tried so far:

var results = arr.filter(function(entry) {
return entry.show === false;
});

但这给了我一个对象数组,而我想要一个带有 names 的数组。有人可以帮我解决这个问题吗?

最佳答案

一个可能的解决方案是使用 Array.reduce()生成具有所需数组的对象,然后您可以稍后访问这些数组。

let arr = [
{name: "abc", show: true , display:"ABC"},
{name: "xyz", show: false , display:"XYZ"},
{name: "pqr", show: true , display:"PQR"},
{name: "lmn", show: false , display:"LMN"}
];

var res = arr.reduce((acc, {show, name}) =>
{
if (show)
acc.show.push(name);
else
acc.noShow.push(name);

return acc;

}, {show:[], noShow:[]});

console.log("show => true", res.show);
console.log("show => false", res.noShow);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

关于javascript - 从对象数组中获取匹配的属性并将它们放入新数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56758354/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com