gpt4 book ai didi

javascript - 通过对象的内部数组进行映射

转载 作者:行者123 更新时间:2023-12-03 17:06:34 27 4
gpt4 key购买 nike

我有这个对象:

let arr = [{  
id : 1,
usr : 'pimba',
xyz: null
},
{
id : 2,
usr : 'aloha',
xyz: {
xyz_id: 2
}
},
{
id : 3,
age : 'pruu',
xyz: null
}];

正如您所注意到的,有时 xyz 为空,有时则不是。
我需要识别它是否为 null,以便我可以读取它。
我试图使用 map() 函数,但我无法将某种过滤器设置为仅在匿名函数不为空时才执行。

我设法做了这样的事情:

let result = Object.values(arr).map(function(row){
if(row['xyz'] != null) {
console.log(row['xyz_id']);
}
});

如果我想要一个仅包含 xyz_id 的新数组怎么办?有更短的版本吗?

第二种情况:

xyz 中有超过 1 个值,并且它不是“命名的”。

let arr = [{  
id : 1,
usr : 'pimba',
xyz: null
},
{
id : 2,
usr : 'aloha',
xyz: {
xyz_id: {"value1Here", "Value2Here"}
}
},
{
id : 3,
age : 'pruu',
xyz: null
}];

最佳答案

您似乎只想为具有非空 xyz 属性的元素映射数组。一种选择是同时使用 .filter.map 方法。另一种选择是使用 .reduce 方法:

let result = arr.reduce(function(ret, row) {
// assuming `xyz` can be only `null` or an object
if ( row.xyz !== null ) {
ret.push(row.xyz.xyz_id);
}
return ret;
}, []);

关于javascript - 通过对象的内部数组进行映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52633227/

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