【发布时间】:2018-05-28 12:19:25
【问题描述】:
我有一个包含工作日对象的数组,我想通过“opens”或“closes”中包含 null 的元素过滤这些对象(不希望它们在我的最终数组中存在)。
let array = [
[
{"weekday":1,"opens":"09:00","closes":"11:00"},
{"weekday":1,"opens":null,"closes":null}
],
[
{"weekday":2,"opens":"09:00","closes":"11:00"},
{"weekday":2,"opens":"12:30","closes":"17:00"},
{"weekday":2,"opens":"18:00","closes":"null"}
], ...
]
我想返回一个新创建的数组,这样我就不会更改原始数组。
我目前的解决方案看起来像那样,但感觉很难看
let newArray = [];
array.forEach( (day, index) => {
day = day.filter( timeblock =>
timeblock.opens != null && timeblock.closes != null
);
newArray.push(day);
});
如何更优雅地过滤嵌套数组? (如果需要,jsfiddle:https://jsfiddle.net/2jukvsoy/1/)
【问题讨论】:
-
你的代码有什么问题?
标签: javascript arrays object filter