鍍金池/ 問答/HTML/ javascript 數(shù)組遍歷刪除的問題

javascript 數(shù)組遍歷刪除的問題

以下是一個(gè)多維數(shù)組,如何遍歷后,刪除item且lists為空的的數(shù)組后,得到一個(gè)新數(shù)組?

            var arr = [{
                id: 1,
                name: 1,
                item: [11,12,13,14],
                lists:[17,18,18]
            },{
                id: 2,
                name: 2,
                item: [],
                lists:[]
            },{
                id: 3,
                name: 3,
                item: [13,15,16,17,18],
                lists:[]
            },{
                id: 4,
                name: 4,
                item: [],
                lists:[]
            },{
                id: 5,
                name: 5,
                item: [13,15,16,17,18],
                lists:[5,1,2,3]
            }];

希望得到的新數(shù)組是:

        var arr = [{
            id: 1,
            name: 1,
            item: [11,12,13,14],
            lists:[17,18,18]
        },{
            id: 3,
            name: 3,
            item: [13,15,16,17,18],
            lists:[]
        },,{
            id: 5,
            name: 5,
            item: [13,15,16,17,18],
            lists:[5,1,2,3]
        }];
回答
編輯回答
獨(dú)特范

剛開機(jī)也來練練手
clipboard.png

2018年4月29日 05:45
編輯回答
情已空
arr.forEach((item, i) => {
    if(item.item.length === 0 && item.lists.length === 0) {
        arr.splice(i, 1)
    }
})
2018年9月10日 22:47
編輯回答
陪她鬧
var newArr = arr.filter(function(item) {
    return (
      typeof item.item === 'array' && item.item.length > 0 &&
      typeof item.lists === 'array' && item.lists.length > 0
    );
});

如果是es6的話,可以更簡潔

2018年1月20日 07:01
編輯回答
傲嬌范
function(arr){
    var newArr = [];
    arr.map(function(obj){
        if(obj.item.length != 0){
             newArr.push({
             id:obj.id,
             name:obj.name,
             item:obj.item,
             lists:obj.lists
             });   
        }
    });
    return newArr;
}
2017年8月15日 11:11
編輯回答
扯機(jī)薄
let newArr = arr.filter(o => (o.item.length || o.lists.length));
2018年1月26日 06:08