假设我有一个像这样的数组:
const items=[{
"taskType": "type2",
"taskName": "two",
"id": "19d0da63-dfd0-4c00-a13a-cc822fc81298"
},
{
"taskType": "type1",
"taskName": "two",
"id": "c5385595-2104-409d-a676-c1b57346f63e"
}]
我想拥有一个箭头(过滤器)功能,该功能返回除taskType = type2和taskName = two之外的所有项目。因此,在这种情况下,它仅返回第二项?
答案 0 :(得分:2)
您可以尝试在Array.prototype.filter()
const items=[{
"taskType": "type2",
"taskName": "two",
"id": "19d0da63-dfd0-4c00-a13a-cc822fc81298"
},
{
"taskType": "type1",
"taskName": "two",
"id": "c5385595-2104-409d-a676-c1b57346f63e"
}]
var res = items.filter(task => !(task.taskType == 'type2' && task.taskName == 'two'));
console.log(res);
答案 1 :(得分:1)
您可以使用lodash的_.reject()
。使用一个对象作为谓词,并定义要拒绝的属性和值:
const items= [{
"taskType": "type2",
"taskName": "two",
"id": "19d0da63-dfd0-4c00-a13a-cc822fc81298"
},
{
"taskType": "type3",
"taskName": "two",
"id": "19d0da63-dfd0-4c00-a13a-cc822fc81298"
},
{
"taskType": "type1",
"taskName": "two",
"id": "c5385595-2104-409d-a676-c1b57346f63e"
}]
const result = _.reject(items, { taskType: "type2", taskName: "two" });
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>