Напишите функцию, которая удаляет все элементы с заданным значением
До второй части задания не дошла, но и в первой не могу найти ошибку. Помогите её найти. Напишите функцию, которая удаляет все элементы с заданным значением
var arr = [1, 2, 1, 4, 1, 3, 4, 1, 111, 3, 2, 1, "1"]; arr.remove(1); // arr = [2, 4, 3, 4, 111, 3, 2, "1"];
Прикрепите его к объекту массива
* Прочтите о прототипе и о том, как прикрепить методы
*
*
let arr = [1, 2, 1, 4, 1, 3, 4, 1, 111, 3, 2, 1, "1"];
function removeItem (array, value) {
do {
array.splice(indexOf(value),1);
} while (indexOf(Value) != -1);
return array;
}
removeItem (arr, 1);
Ответы (3 шт):
Автор решения: Анастасия
→ Ссылка
Я бы написала функцию для первого задания вот так:
let array = [1, 2, 1, 4, 1, 3, 4, 1, 111, 3, 2, 1, "1"];
function removeAllItems(array, value) {
var i = 0;
while (i < array.length) {
if (array[i] === value) {
array.splice(i, 1);
} else {
++i;
}
}
return array;
}
console.log(removeAllItems(array,1))
Тогда при вызове, например, console.log(removeAllItems(array,1)) для Вашего массива, получим: [2,4,3,4,111,3,2,"1"], что Вам, насколько я понимаю, и нужно.
Автор решения: Alexander Lonberg
→ Ссылка
var arr = [1, 2, 1, 4, 1, 3, 4, 1, 111, 3, 2, 1, "1"]
// Добавить к прототипу можно так
Array.prototype.removeItem = function (v) {
for (let i = 0; i < this.length; ++i) {
if (this[i] === v) {
// так как удаляем элемент сразу откатываем индекс назад
this.splice(i--, 1)
}
}
}
arr.removeItem(1)
console.log(arr)
Автор решения: Ajeet Shah
→ Ссылка
Вы можете использовать filter:
let arr = [1, 2, 1, 4, 1, 3, 4, 1, 111, 3, 2, 1, "1"];
function removeItem(array, value) {
return array.filter(item => item !== value)
}
console.log(removeItem(arr, 1));
console.log(removeItem(arr, 2));
console.log(removeItem(arr, 3));
Array.prototype.removeItem = function (value) {
return this.filter(item => item !== value)
}
let arr = [1, 2, 1, 4, 1, 3, 4, 1, 111, 3, 2, 1, "1"];
console.log(arr.removeItem(1));