有两个数组,要根据第一个数组的值去第二个数组中筛选出id对应的对象。
如下,第一个数组中有4,3, 要从第二个数组中筛选出id为4和3的两个对象,并存到一个新数组中。
test() {
const newArray = []
const arrayA = ['3', '4']
const arrayB = [{ id: 1, name: 'A' }, { id: 2, name: 'B' }, { id: 3, name: 'C' }, { id: 4, name: 'D' }, {
id: 5,
name: 'E'
}, { id: 6, name: 'F' }]
arrayA.forEach(item => {
for (let i = 0; i < arrayB.length; i++) {
if (item == arrayB[i].id) {
newArray.push(arrayB[i])
}
}
})
console.log(newArray, 'newArraynewArray')
},
1.你第一个数据中的值是字符串,如果人家给的就是字符串的话,那你得手动去转为数值,然后再进行筛选,如果是自己定义的话,直接写数值比较方便
2.这种情况可以用filter进行筛选,然后再push到新数组
let a = [2,3,4];
let b = [{id:1,name:'abc'},{id:3,name:'eqf'},{id:4,name:'kol'}];
let arr=[];
for(let a1 = 0; a1<a.length;a1++){
for(let a2 = 0; a2<b.length;a2++){
if(a[a1] == b[a2].id){
//满足条件
arr.push(b[a2]);
continue;
}
}
}
console.log("新数组:",arr);
```javascript
const arr1=[1,2]
const arr2 = [{id:1,name:"我是id1的数据"},{id:11,name:"我是id11的数据"},{id:2,name:"我是id2的数据"}]
const newArr = arr2.filter(i=>arr1.includes(i.id))
```