7

Как удалить элемент массива в TypeScript?

1

У меня есть массив, который я создал в TypeScript, и в нем есть свойство, которое я использую в качестве ключа. Если у меня есть этот ключ, как можно удалить элемент из массива?

5 ответ(ов)

3

В вашем коде есть ошибка синтаксиса в стрелочной функции. Правильный способ написания фильтрации массива с использованием стрелочной функции выглядит так:

let foo_object; // Itemitem(object here) to remove
this.foo_objects = this.foo_objects.filter(obj => obj !== foo_object);

Здесь мы используем стрелочную функцию, которая принимает объект obj и возвращает true, если obj не равен foo_object. Таким образом, filter создает новый массив, в котором будут только те объекты, которые не равны foo_object.

1

В ES6 вы можете использовать следующий код для удаления документа:

removeDocument(doc) {
   this.documents.forEach((item, index) => {
     if (item === doc) this.documents.splice(index, 1);
   });
}

Этот метод removeDocument проходит по массиву this.documents и проверяет, совпадает ли текущий элемент с переданным документом doc. Если совпадение найдено, элемент удаляется из массива с помощью метода splice. Однако обратите внимание, что использование splice внутри цикла forEach может привести к пропуску элементов, так как индексы массива изменяются при каждом удалении. Лучше использовать другой подход, например, метод filter:

removeDocument(doc) {
   this.documents = this.documents.filter(item => item !== doc);
}

Этот вариант создаст новый массив, исключая документ, который вы хотите удалить, и избавит от возможных проблем с изменением индексов во время перебора.

0

Вот моё решение для этой задачи:

onDelete(id: number) {
    this.service.delete(id).then(() => {
        let index = this.documents.findIndex(d => d.id === id); // находим индекс элемента в массиве
        this.documents.splice(index, 1); // удаляем элемент из массива
    });

    event.stopPropagation();
}

Этот код удаляет элемент с заданным id из вашего массива documents. Сначала мы вызываем метод delete у сервиса, который выполняет удаление на сервере. После успешного завершения удаления мы находим индекс элемента в массиве и используем метод splice, чтобы удалить его. Также важно отметить, что мы предотвращаем дальнейшую обработку события с помощью event.stopPropagation().

0

Чтобы удалить элемент из массива departments, вы можете использовать метод filter, который создаёт новый массив, содержащий только те элементы, которые проходят проверку, заданную в функции. В вашем случае вы можете отфильтровать массив, исключив элемент с заданным именем. Вот как это выглядит на TypeScript:

departments: string[] = [];

removeDepartment(name: string): void {
    this.departments = this.departments.filter(item => item !== name);
}

В этом коде метод removeDepartment принимает строку name и обновляет массив departments, исключая элемент, равный name. Таким образом, если в массиве есть совпадение с переданным именем, оно будет удалено, и массив будет обновлён.

0

Вы можете использовать метод splice для удаления элементов из массива.

Например, если у вас есть массив с именем arr, вы можете использовать следующий код:

arr.splice(2, 1);

Здесь элемент с индексом 2 будет начальной точкой, а второй аргумент (2) определяет, сколько элементов следует удалить.

Если вы хотите удалить последний элемент массива arr, сделайте это следующим образом:

arr.splice(arr.length - 1, 1);

Это вернет массив arr с удаленным последним элементом.

Пример:

var arr = ["orange", "mango", "banana", "sugar", "tea"];
arr.splice(arr.length - 1, 1);
console.log(arr); // вернет ["orange", "mango", "banana", "sugar"]
Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь