Javascript 通过删除不需要的嵌套对象特性筛选对象数组

Javascript 通过删除不需要的嵌套对象特性筛选对象数组,javascript,arrays,object,filter,Javascript,Arrays,Object,Filter,我有一个数组,其中包含工作日的对象,我希望通过在“opens”或“closes”中包含null的元素来过滤这些对象(不希望它们在我的最终数组中存在) 我想返回一个新创建的数组,这样就不会更改原始数组 我目前的解决方案看起来像那样,但感觉很难看 let newArray = []; array.forEach( (day, index) => { day = day.filter( timeblock => timeblock.opens != null &

我有一个数组,其中包含工作日的对象,我希望通过在“opens”或“closes”中包含null的元素来过滤这些对象(不希望它们在我的最终数组中存在)

我想返回一个新创建的数组,这样就不会更改原始数组

我目前的解决方案看起来像那样,但感觉很难看

let newArray = [];

array.forEach( (day, index)  => {
    day = day.filter( timeblock => 
       timeblock.opens != null && timeblock.closes != null
    );
    newArray.push(day);
});

如何更优雅地过滤嵌套数组?(jsfiddle如果需要:)

您的代码有什么问题?
let newArray = [];

array.forEach( (day, index)  => {
    day = day.filter( timeblock => 
       timeblock.opens != null && timeblock.closes != null
    );
    newArray.push(day);
});
let newArray = array.map(day => 
    day.filter(timeblock => 
        timeblock.opens != null && timeblock.closes != null
    )
);