Я работаю с массивом объектов JavaScript как таковых:
var IssuesArray = [{"ID" : "1", "Name" : "Issue1"},
{"ID" : "2", "Name" : "Issue2"},
{"ID" : "3", "Name" : "Issue3"}];
Мое конечное усилие пытается удалить объект из массива, когда я знаю идентификатор объекта. Я пытаюсь использовать код, который выглядит примерно так:
$.grep(IssuesArray, function(n, i) {
return i != $.inArray("2", IssuesArray);
});
Итак, это показывает, что я пытаюсь использовать jQuery grep для удаления элемента по индексу (i), который я пытаюсь получить с помощью jQuery inArray. Конечно, код выше не будет работать, потому что "2" должен соответствовать элементу в массиве, который является всеми объектами JavaScript (объект никогда не будет равен "2" ). Мне нужно что-то вроде:
$.inArray(javascriptObject.Name=="2", IssuesArray);
Кто-нибудь когда-либо имел успех с использованием inArray для получения индексов объектов JavaScript, используя значение поля внутри этого объекта? Любая помощь будет оценена по достоинству. Спасибо.
ОБНОВЛЕНИЕ/ПОДТВЕРЖДЕНИЕ: Несколько человек были смущены моим вопросом, но я получил ответ, который работает, тем не менее. Я использую:
IssuesArray = $.grep(IssuesArray, function(n) {
return n.ID != "2";
});
Думаю, я думал об этом слишком глубоко, когда решение было очень легко. Я просто хотел удалить объект JavaScript из массива, пока я знал определенное значение свойства в этом объекте. В приведенном выше решении используется jQuery grep для возврата всего из массива, за исключением любого объекта, чей идентификатор == "2" . Как обычно, спасибо за быстрые ответы. Ответы пары были хорошими решениями и работали бы с использованием (например, "сплайсинга" ), но это решение кажется самым коротким самым простым. Еще раз спасибо.