Может кто-нибудь помочь с решением задачи на JavaScript?
Всем привет. Я пытаюсь освоить JavaScript самостоятельно через учебник code.mu/ru/javascript/book/prime. Имеется там вот такая задача: "Сделайте функцию delElem, которая параметрами будет принимать значение и массив и удалять из массива все элементы с таким значением." Я её решаю так:
function delElem (num, arr) {
for (let elem of arr) {
if (num == elem) {
arr.splice(elem, 1);
}
}
return(arr);
}
но почему-то это не верно. Подсмотрел решение этой задачи в интернете, и по сути там также решают но через цикл for, а не for-of как я. Объясните кто-нибудь почему моё решение не работает.
Для правильного вопроса надо знать половину ответа
Во-первых, for ... of перебирает значения элементов массива, а не индексы, поэтому splice использовать нельзя.
Во-вторых, модифицировать массив, по которому идёт перебор, вообще не лучшая идея. Если делать такое, то делать надо умеючи и аккуратно.
В-третьих, для такой цели есть метод массива filter.