Введение
В этом практическом занятии мы изучим, как проверить, существует ли целевое значение в JSON-объекте с использованием JavaScript. Мы будем использовать функцию hasKey(), которая позволяет последовательно проверять ключи в объекте, чтобы определить, присутствует ли целевое значение. Это практическое занятие поможет лучше понять, как работать с JSON-объектами в JavaScript.
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
Резюме
Поздравляем! Вы завершили практическое занятие по проверке наличия ключа в объекте. Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.