Получить ключ массива для удаления массива на основе этого объекта массива

Новый вопрос, так что это массив

[
    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": ""
    }
]

Как удалить на основе идентификатора, когда я нажимаю кнопку? В моем приложении есть кнопка удаления, чтобы удалить этот массив. Я думаю, что нужно получить ключ массива, чтобы удалить массив.

Например: я могу получить идентификатор =8, но как я могу получить ключ массива 2, чтобы удалить массив номер 2?

Если вы не понимаете, пожалуйста, прокомментируйте. Благодарю.

4 ответа

Решение

Если вы хотите напрямую манипулировать содержимым массива, а не возвращать новый массив, вы можете попробовать это

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

проверьте Array.prototype.splice(), чтобы узнать больше

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

и не забывайте все запятые в ваших объектах в массиве. (после идентификатора)

Предположим, ваш массив выглядит так:

 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
});

Теперь наконец это вернет массив с удалением записи id=6

Предположим, что ваш массив был сохранен в obj, вы можете использовать функцию удаления lodash для удаления элемента в массиве следующим образом.

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

Который удалит элемент '2', содержащий '8' из вашего массива

Другие вопросы по тегам