Как удалить ключ из объекта JavaScript?
Проблема с удалением свойства из объекта в JavaScript
У меня есть объект следующего формата:
var thisIsObject = {
'Cow': 'Moo',
'Cat': 'Meow',
'Dog': 'Bark'
};
Мне нужно создать функцию, которая будет удалять свойство по ключу. Например, я хотел бы вызвать функцию так:
removeFromObjectByKey('Cow');
Однако я не могу найти подходящее решение. Кто-нибудь может подсказать, как правильно реализовать эту функцию? Спасибо!
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;
}, {}
);
Этот способ создаст новый объект, исключая указанное свойство.
Это делается очень просто:
delete object.keyname;
или
delete object["keyname"];
Вы можете использовать любой из этих двух методов для удаления свойства из объекта.
Где найти документацию по форматированию даты в JavaScript?
В чем разница между String.slice и String.substring?
Проверка соответствия строки регулярному выражению в JS
Существует ли ссылка на "последнюю" библиотеку jQuery в Google APIs?
Как создать диалог с кнопками "Ок" и "Отмена"