js 操作数组(过滤对应数据)

时间:2023-03-09 04:48:44
js 操作数组(过滤对应数据)

一、过滤掉相应数据(带有key)

var fileList = {
"85968439868a92": [{name: 'food.jpeg'}, {name: 'ood.jpeg'}],
"": [{name: 'd.jpeg'}, {name: 'doe.jpeg'}]
};
function demo() {
Object.keys(fileList).forEach(function (k) {
console.log(k)
console.log(fileList[k])
var f = fileList[k].filter(gl)
console.log(f)
fileList[k] = f
})
console.log(fileList)
}
function gl(ele) {
console.log()
console.log(ele)
if (ele.name !== 'food.jpeg'){
return ele
}
}
demo()

二、过滤掉含有某些id 的数据

  比如:如何去除数组a中 id=15和id=3 的对象

var a = [{ id:  }, { id: - }, { id:  }, { id:  }, { id: 12.2 }];
var b = [, ];
var c = a.filter(item => { return !b.includes(item.id); }); console.log(c)

三、过滤多维数组的相应数据

function f () {
var treeData = [
{a:'',sub:[{aaa:'ggg',is_show: }]},
{a:'hhh',sub:[{aaa:'rrr',is_show: }]},
]
var a = JSON.parse(JSON.stringify(treeData)).map(item => {
console.log(item)
if (item.sub) {
item.sub = item.sub.filter(sub => sub.is_show == )
}
return item;
}).filter(item => item.sub && item.sub.length);
console.log(a)
}

四、筛选出对象中有值的数据

var query= {
a1: "nn",
a2: "",
a3: "bb"
} var a = Object.keys( query ).reduce( ( result, key ) => {
if ( query[ key ] !== "" ) {
result[ key ] = query[ key ];
}
return result;
}, {} );
console.log(a)