过滤对象数组并删除项目

时间:2018-03-13 11:39:40

标签: javascript angularjs

我在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但是没有用。

3 个答案:

答案 0 :(得分:0)

array.filter是正确的方法。你可能错过了它。

查看此片段,它会过滤掉user_id1不同的所有条目

请参阅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()

之类的内容