我有一个值数组:["1", "2", "3"]
,它实质上包含存储在此对象数组中的记录的引用:
[
{ id: 1, name: "John" },
{ id: 2, name: "Patrick" },
{ id: 3, name: "Jack" },
{ id: 4, name: "Paula" },
{ id: 5, name: "Sarah" }
]
我想从对象数组中返回丢失的引用,所以结果将是:4, 5
。到目前为止,我实现的是从html中所有可用的select
中获取第一个数组的所有选定值:
var selected_options = $('.options-picker')
.map(function() { return this.value}).get();
这将返回1, 2, 3
。如何从对象4, 5
的数组中提取?
谢谢。
答案 0 :(得分:2)
使用filter
和includes
对照数组中的值检查对象ID。
const data = [
{ id: 1, name: "John" },
{ id: 2, name: "Patrick" },
{ id: 3, name: "Jack" },
{ id: 4, name: "Paula" },
{ id: 5, name: "Sarah" }
];
const items = [1, 2, 3];
const out = data.filter(obj => !items.includes(obj.id));
console.log(out);
答案 1 :(得分:1)
可以做到
var a=[
{ id: 1, name: "John" },
{ id: 2, name: "Patrick" },
{ id: 3, name: "Jack" },
{ id: 4, name: "Paula" },
{ id: 5, name: "Sarah" }
]
var b=['1', '2', '3'];
a.forEach((e)=>{
if(b.indexOf(e.id.toString())==-1)
{
b.push(e.id);
}
})
alert(b)