У меня есть массив Исключений, как показано ниже:Javascript удалить только первый матч в массиве в цикле
Exclusions: [ID:"233242", Loc:"West", ID:"322234" , Loc:"South"]
Я также Object вложен с массив объектов, которые могли бы выглядеть примерно
Schools : [ O: [ ID:"233242" ] , 1:[ ID:"233242"] , 2: [ID :"954944"] ]
Мне нужно удалить из объекта школы любые соответствующие индексы массива с тем же ID, но только для первого матча. Это означает, что элемент 0 должен быть удален, но элемент 1 все равно должен быть там. Какой самый лучший способ, чтобы исправить мой цикл:
$.each(Exclusions, function (index, value) {
var loc = value.Loc;
var ID = value.ID;
Object.keys(Schools.District.Pack[loc]).forEach(function (key) {
//i need to scan through the entire object
if (Schools.District.Pack[loc].ID === ID) {
//remove the first match now stop looking
Schools.District.Pack[loc].splice(key, 1);
//break ; incorrect
}
});
});
'return false' завершает каждый цикл, но поскольку у вас есть два из них, вам также необходимо установить какой-то флаг во внутреннем цикле, который вы можете проверить на внешнем, чтобы это тоже. – CBroe
@Cbroe Я думал об использовании IndexOf, но это не работает, плюс я думаю, что другое сканирование массива слишком интенсивно – Edward