8

Удаление объекта из массива с помощью JavaScript

1

Как удалить объект из массива?

Я хочу удалить объект, который включает имя Kristian, из массива someArray. Например:

someArray = [{name:"Kristian", lines:"2,5,10"},
             {name:"John", lines:"1,19,26,96"}];

Я хочу получить:

someArray = [{name:"John", lines:"1,19,26,96"}];

5 ответ(ов)

1

Конечно! Ваш код на JavaScript использует метод filter() для удаления объекта с именем "John" из массива someArray. Вот как это работает:

let someArray = [
    {name: "Kristian", lines: "2,5,10"},
    {name: "John", lines: "1,19,26,96"},
    {name: "Kristian", lines: "2,58,160"},
    {name: "Felix", lines: "1,19,26,96"}
];

// Фильтруем массив, исключая объекты с именем 'John'
someArray = someArray.filter(person => person.name !== 'John');

Метод filter() создает новый массив, содержащий только те элементы, которые удовлетворяют условию, заданному в колбэк-функции. В данном случае, мы проверяем, что имя человека (person.name) не равно 'John'. После выполнения фильтрации массив будет содержать только элементы без объекта с именем "John".

Таким образом, в результате выполнения данного кода объект с именем "John" будет удалён, и массив будет выглядеть следующим образом:

[
    {name: "Kristian", lines: "2,5,10"},
    {name: "Kristian", lines: "2,58,160"},
    {name: "Felix", lines: "1,19,26,96"}
]

Надеюсь, это поможет!

0

В вашем коде используется метод $.each() для перебора массива someArray и удаления элемента с именем "Kristian". Однако, этот подход может привести к проблемам, связанным с изменением массива во время итерации. Это связано с тем, что метод splice() изменяет длину массива, что может вызвать пропуск элементов в итерации.

Вместо этого я бы рекомендовал использовать метод filter(), который возвращает новый массив, включая только те элементы, которые соответствуют условию. Вот пример, как это можно сделать:

someArray = someArray.filter(function(item) {
    return item.name !== 'Kristian';
});

Или, если вы предпочитаете использовать стрелочные функции:

someArray = someArray.filter(item => item.name !== 'Kristian');

Таким образом, вы не будете изменять оригинальный массив во время итерации, и код будет более понятным и безопасным.

0

Вы можете использовать метод array.filter().

Например:

someArray = [{name:"Kristian", lines:"2,5,10"},
             {name:"John", lines:"1,19,26,96"}];

someArray = someArray.filter(function(returnableObjects) {
    return returnableObjects.name !== 'Kristian';
});

// Теперь someArray будет равно [{name:"John", lines:"1,19,26,96"}];

Используя стрелочные функции, код будет выглядеть так:

someArray = someArray.filter(x => x.name !== 'Kristian');

Этот подход позволяет легко отфильтровывать элементы массива по заданному критерию.

0

Если у вас есть массив объектов, как в приведенном примере:

const someArray = [{name: "Kristian", lines: "2,5,10"}, {name: "John", lines: "1,19,26,96"}];

и вам нужно получить индекс объекта, у которого значение свойства name равно "Kristian", вы можете использовать метод findIndex:

const index = someArray.findIndex(key => key.name === "Kristian");
console.log(index); // 0

В данном случае index будет равен 0, так как "Kristian" находится в первом элементе массива.

Затем, чтобы удалить объект с name равным "Kristian", вы можете использовать метод splice, как показано ниже:

someArray.splice(index, 1);
console.log(someArray); // [{name: "John", lines: "1,19,26,96"}]

После выполнения данного кода, массив someArray будет содержать только объект с именем "John". Метод splice удаляет один элемент, начиная с указанного индекса.

0

Это функция, которая работает для меня:

function removeFromArray(array, value) {
    var idx = array.indexOf(value);
    if (idx !== -1) {
        array.splice(idx, 1);
    }
    return array;
}

Эта функция removeFromArray принимает два параметра: массив array и значение value, которое вы хотите удалить из этого массива. Сначала она находит индекс первого вхождения value в массиве с помощью indexOf. Если значение найдено (индекс не равен -1), оно удаляется с помощью метода splice. В конце функция возвращает обновленный массив. Вы можете использовать эту функцию, чтобы легко удалять элементы из массивов в JavaScript.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь