arrs数组如何根据arr数组变化而改变 如果arr中的元素在arrs中存在就不管,arrs中有的arr中没有 就在arrs中删除此项

arrs数组如何根据arr数组变化而改变 如果arr中的元素在arrs中存在就不管,不存就添加 ,arrs中有的arr中没有 就在arrs中删除此项

let arr = ["用例1", "用例3","用例4","用例5"];
 let arrs = [
        {
          name: "用例1",
        },
        {
          name: "用例2",
        },
        {
          name: "用例3",
        },
  ];

各位技术专家帮忙看看

遍历arrs,每次遍历去arr中去找这个元素,如果没有,就把这个元素下标记录下来。最后再遍历下标合集,统一删除arrs元素,完

你好,像这种情况要分两步进行,参考我的代码

const arr = ["用例1", "用例3","用例4","用例5"];
    let arrs: any[] = []

    // 第一步,先处理没有就添加的情况
    arr.forEach(item => {
      if (!arrs.some(v => v.name === item)) {
        arrs.push({ name: item })
      }
    })

    // 第二步,检查arr中没有的项,没有就删除,有就继续保留
    arrs = arrs.flatMap(item => {
      return arr.includes(item.name) ? [item] : []
    })