首页 > 解决方案 > 我需要使用匹配的键删除对象列表。(例如键有 1 和 2 ,结果只会显示 3)

问题描述

let selectedRow = ["1","2","3"]; 

let arr = [ 
   { id:1, name:"eddie" }, 
   { id:2, name:"jake" }, 
   { id:3, name:"susan" }, 
];

标签: javascript

解决方案


  1. 更新安迪提供的答案,如果您不想更新现有数组并希望生成一个新数组

let selectedRow = ["1", "2"];

let arr = [
    { id: 1, name: "eddie" },
    { id: 2, name: "jake" },
    { id: 3, name: "susan" },
];

const result = arr.filter(item => !selectedRow.includes(item.id.toString()))
console.log(result)

  1. 如果您想要更改当前数组并且不想将结果存储在新数组中(虽然不是最有效的解决方案)

let selectedRow = ["1", "2"];

let arr = [
    { id: 1, name: "eddie" },
    { id: 2, name: "jake" },
    { id: 3, name: "susan" },
];

for (const row of selectedRow) {
    const index = arr.findIndex(item => item.id.toString() === row)
    if (index !== -1)
        arr.splice(index, 1)
}

console.log(arr)


推荐阅读