gpt4 book ai didi

javascript - 在 javascript 中使用 map 从对象中获取数组。但是得到未定义的数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:54:45 25 4
gpt4 key购买 nike

我正在使用 map 获取数组的子部分。

var mappingobj = {"custom":[{"head":"202","sub":["302","303"]},{"head":"203","sub":["102"]}],"spec":[]};

var subids = mappingobj.custom.map(function(o, i) {
if(o.head==202){
return o.sub;
}
});

console.log(subids);

我只需要获取 ["302","303"]。但我得到的输出是 [Array[2], undefined]。

最佳答案

基本思想是map是从数组中获取一定的值。如果默认情况下您不返回 map 中的任何内容,则未定义将返回并且您将获得未定义。因此使用过滤器获取所需的对象,而不是使用 map 获取该对象的所需属性

var mappingobj = {"custom":[{"head":"202","sub":["302","303"]},{"head":"203","sub":["102"]}],"spec":[]};

var subids = mappingobj.custom.filter(function(o, i) {
if(o.head==202 && o.head){
return o;
}
}).reduce((acc,elem)=>{acc.push(...elem.sub); return acc;},[]);

console.log(subids);

关于javascript - 在 javascript 中使用 map 从对象中获取数组。但是得到未定义的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47508538/

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