获取数组键以删除基于该数组对象的数组

Get array key to remove an array based on that array object

新题,这是数组

[
    0: {
        "id" : "3"
        "name": "David",
        "age": "20"
    },
    1: {
        "id" : "6"
        "name": "",
        "age": "18"
    },
    2: {
        "id" : "8"
        "name": "Micheal",
        "age": "25"
    },
    3: {
        "id" : "9"
        "name": "Wonder Women",
        "age": "20"
    },
    4: {
        "id" : "12"
        "name": "Clark",
        "age": ""
    }
]

点击按钮时如何根据id删除?在我的应用程序中有一个删除按钮来删除这个数组。我认为它需要获取数组键才能删除数组。

例如:我可以得到id=8,但是我怎样才能得到数组键2来删除数字2数组?

如有不明白欢迎评论。谢谢。

假设您的数组存储在 obj 中,您可以使用 lodash 函数 remove 按以下方式删除数组中的项目.

_.remove(obj, function(currentObject) {
    return currentObject.id == "8";
});

这将从您的数组中删除包含“8”的项目“2”

array.filter((obj) => {
    if (obj.id != yourId){
        return obj;
    }
})

并且不要忘记数组中对象中的所有逗号。 (在 id 之后)

假设你的数组是这样的:

 arr = [
  {"id":"3","name":"Clark"},
  {"id":"6","name":"David"},
  {"id":"8","name":"Miche"}
];

id = 6;

arr = $.grep(arr, function(data, index) {
   return data.id != id
});

现在最后这个 return 数组删除了 id=6

的记录

如果你想直接操作数组的内容而不是返回新数组,你可以试试这个

let index = array.findIndex(obj => obj.id == objIdToDelete)
if(index != -1) { array.splice(index, 1) }

查看Array.prototype.splice()了解更多