Показать сообщение отдельно
  #1 (permalink)  
Старый 10.05.2021, 05:36
Аватар для nastya97core
Аспирант
Отправить личное сообщение для nastya97core Посмотреть профиль Найти все сообщения от nastya97core
 
Регистрация: 04.04.2020
Сообщений: 60

Как удалить из многомерного массива?
Здравствуйте. Есть вот такой json массив:
[
["Orange","medium"],
["Orange","big"],
["Apple","big"],
["Banane",false],
["Apple","big"],
]


Мне нужно удалить из массива нужный объект. Даже если в массиве несколько раз повторяется данный объект - удалить всё равно один раз.

Я попыталась сама и хотела уже сказать, что мой вариант работает (хоть он мне и не нравится), но мой "вариант" ведёт себя крайне странно:
let del = ["Apple", "big"];

let arr = JSON.parse('[["Orange","medium"],["Orange","big"],["Apple","big"],["Banane",false],["Apple","big"]]')

for (var i = 0, count = arr.length; i < count; i++) {
if(arr[i][0] === del[0] && arr[i][1] === del[1]){
console.log("ПОДОШЛО");
arr.splice(i, i);
break;
} else {
console.log("НЕ ПОДОШЛО");
}
}

Я подумала, что это делается через перебор массива, хотя мне кажется, что это можно сделать проще без переборов. Но меня смутило поведение данного кода: кроме Apple big удаляется ещё и Banane false. Почему - мне не понятно...

У меня 2 вопроса:
1. как правильно удалить ненужный объект из массива?
2. ПОЧЕМУ МОЙ КОД УДАЛЯЕТ БАНАН?
Ответить с цитированием