JavaScript关于两个数组筛选出指定元素的问题

有两个数组,要根据第一个数组的值去第二个数组中筛选出id对应的对象。
如下,第一个数组中有4,3, 要从第二个数组中筛选出id为4和3的两个对象,并存到一个新数组中。

img

    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))

```