gpt4 book ai didi

javascript - 对象数组在其上运行过滤器后返回未定义

转载 作者:行者123 更新时间:2023-11-28 12:52:01 25 4
gpt4 key购买 nike

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

let pageComponents = { pages: [ { "components": [ ... ] }, { "components": [ ... ] } ] };

参见Remove null entries from array of objects获取组件的内容。

我尝试对其运行以下filter方法,但对象数组随后返回null。知道如何修复它吗?

  static deleteEmptyComponentsOnMultiplePages(components) {
return components['pages'].forEach(obj => {
obj['components'].filter(item => item !== null);
}
);
}

最佳答案

forEach 不会返回任何内容,它只是循环。这里需要使用map()

您还需要在map()的回调中使用return,否则您将得到一个undefined数组

static deleteEmptyComponentsOnMultiplePages(components) {
return components['pages'].map(obj => {
return obj['components'].filter(item => item !== null);
});
}

您可以排除 map(){} 并隐式返回

static deleteEmptyComponentsOnMultiplePages(components) {
return components['pages'].map(obj => obj['components'].filter(item => item !== null));
}

您可以使用解构来获得更简洁的代码

static deleteEmptyComponentsOnMultiplePages({pages}) {
return pages.map(({components}) => components.filter(item => item !== null));
}

关于javascript - 对象数组在其上运行过滤器后返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60521644/

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