简介
在本实验中,我们将探索如何使用 JavaScript 检查目标值是否存在于 JSON 对象中。我们将使用 hasKey() 函数,该函数允许我们依次检查对象中的键,以确定目标值是否存在。本实验将让你更好地理解如何在 JavaScript 中处理 JSON 对象。
用于检查对象是否有键的 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 中练习更多实验来提升你的技能。