我在angularjs中有一个对象数组,如下所示:
[
0: {id: "1", user_id: "1", name: "object1"},
1: {id: "2", user_id: "1", name: "obejct2"},
2: {id: "3", user_id: "2", name: "object3"},
]
我想搜索数组并删除没有特定user_id的项目,存储在另一个变量中。我试过array.filter但是没有用。
答案 0 :(得分:0)
array.filter
是正确的方法。你可能错过了它。
查看此片段,它会过滤掉user_id
与1
不同的所有条目
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter了解文档
const data = [
{id: "1", user_id: "1", name: "object1"},
{id: "2", user_id: "1", name: "object3"},
{id: "3", user_id: "2", name: "object3"},
]
const filteredData = data.filter((item) => {
return item.user_id === '1';
})
console.log(filteredData)
答案 1 :(得分:0)
让我们假设您将所选值存储到" selectedUserId'变量
您可以通过以下方式实现目标:
let selectedUserId = '1';
let data = [
{id: "1", user_id: "1", name: "object1"},
{id: "2", user_id: "1", name: "object3"},
{id: "3", user_id: "2", name: "object3"},
]
let output = data.filter(item => item.user_id === selectedUserId)
console.log(output)

答案 2 :(得分:0)
以为我会添加一个非常简洁的方法:
const keepId = '1'
const filtered = data.filter(({ user_id }) => user_id === keepId)
用途:
另请注意,filter()
会返回一个新数组,保持原文的正确性。如果要更改原始数组,则必须使用splice()