18

Как удалить ключ из объекта JavaScript?

11

Проблема с удалением свойства из объекта в JavaScript

У меня есть объект следующего формата:

var thisIsObject = {
   'Cow': 'Moo',
   'Cat': 'Meow',
   'Dog': 'Bark'
};

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

removeFromObjectByKey('Cow');

Однако я не могу найти подходящее решение. Кто-нибудь может подсказать, как правильно реализовать эту функцию? Спасибо!

2 ответ(ов)

2

Если вы используете Underscore.js или Lodash, у вас есть функция omit, которая решит вашу задачу.

Вот ссылка на документацию: Underscore.js - omit.

Пример использования:

var thisIsObject = {
    'Cow': 'Moo',
    'Cat': 'Meow',
    'Dog': 'Bark'
};

_.omit(thisIsObject, 'Cow'); // Возвращает новый объект

// Результат
=> {'Cat': 'Meow', 'Dog': 'Bark'}

Если вы хотите изменить текущий объект, присвойте возвращаемый объект текущему объекту:

thisIsObject = _.omit(thisIsObject, 'Cow');

С помощью чистого JavaScript вы можете использовать:

delete thisIsObject['Cow'];

Еще один вариант с использованием чистого JavaScript:

thisIsObject = Object.keys(thisIsObject).filter(key =>
    key !== 'Cow').reduce((obj, key) => {
        obj[key] = thisIsObject[key];
        return obj;
    }, {}
);

Этот способ создаст новый объект, исключая указанное свойство.

1

Это делается очень просто:

delete object.keyname;

или

delete object["keyname"];

Вы можете использовать любой из этих двух методов для удаления свойства из объекта.

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