前言
过滤出符合某些条件的数组
一、当条件为单个时
const data
= [
{id
: 1,topic
: '难过',title
: '再见只是陌生人' },
{id
: 2,topic
: '遗憾',title
: '落空'},
{id
: 3,topic
: '回忆',title
: '那女孩对我说' }
]
function
filterData(data
, params
) {
let _data
= data
.filter(item
=> item
[params
] === 2)
return _data
}
console
.log(filterData(data
, 'id'))
二、当条件为对象时
const data
= [{
topic_id
: 1,
topic_name
: '侧脸',
first_class_category
: '歌曲',
second_class_category
: '回忆',
reviewing
: 1,
reviewed
: 23,
filtered
: 111,
effective_date
: '2020-12-20 00:06:00',
review_status
: 'reviewing',
online_status
: 'offline',
owner
: '于果',
},
{
topic_id
: 2,
topic_name
: '小幸运',
first_class_category
: '音乐',
second_class_category
: '青春',
reviewing
: 2,
reviewed
: 33,
filtered
: 121,
effective_date
: '2020-12-20 00:06:00',
review_status
: 'filtered',
online_status
: 'offline',
owner
: '田馥甄',
},
{
topic_id
: 3,
topic_name
: '光年之外',
first_class_category
: '歌曲',
second_class_category
: '天籁之音',
reviewing
: 3,
reviewed
: 53,
filtered
: 151,
effective_date
: '2020-12-20 00:06:00',
review_status
: 'reviewed',
online_status
: 'online',
owner
: '邓紫棋',
},
]
function
filterData(data
, obj
) {
return data
.filter(item
=> {
return Object
.entries(obj
).every(([_key
, _val
]) => {
if (item
[_key
] === _val
) return true
})
})
}
let obj
= {
first_class_category
: '歌曲',
review_status
: 'reviewed'
}
console
.log(filterData(data
, obj
))
总结
Ojbect.entries()返回可枚举属性的键值对数组 例如:
let obj1
= {
id
: 1,
topic
: '难过',
title
: '再见只是陌生人'
}
console
.log(Object
.entries(obj
))
转载请注明原文地址:https://tech.qufami.com/read-26859.html