JavaScript-функция для проверки наличия ключа в объекте
Для проверки наличия целевого значения в JavaScript-объекте используйте функцию hasKey
.
Функция принимает два аргумента: obj
— JSON-объект, в котором нужно искать, и keys
— массив ключей для проверки. Вот шаги по проверке наличия у объекта заданного ключа (или ключей):
- Проверьте, не пустой ли массив
keys
. Если он пуст, верните false
.
- Используйте метод
Array.prototype.every()
для перебора массива keys
и последовательной проверки каждого ключа на вложенность в объект obj
.
- Используйте метод
Object.prototype.hasOwnProperty()
для проверки, не имеет ли obj
текущего ключа или не является ли он объектом. Если хотя бы одно из этих условий истинно, остановите распространение и верните false
.
- В противном случае назначьте значение ключа объекту
obj
, чтобы использовать его на следующей итерации.
- Если массив
keys
был успешно перебран, верните true
.
Вот код функции hasKey
:
const hasKey = (obj, keys) => {
return (
keys.length > 0 &&
keys.every((key) => {
if (typeof obj !== "object" || !obj.hasOwnProperty(key)) return false;
obj = obj[key];
return true;
})
);
};
Вот несколько примеров использования функции hasKey
:
let obj = {
a: 1,
b: { c: 4 },
"b.d": 5
};
hasKey(obj, ["a"]); // true
hasKey(obj, ["b"]); // true
hasKey(obj, ["b", "c"]); // true
hasKey(obj, ["b.d"]); // true
hasKey(obj, ["d"]); // false
hasKey(obj, ["c"]); // false
hasKey(obj, ["b", "f"]); // false