简介
在本实验中,我们将探索如何使用 JavaScript 检查目标值是否存在于 JSON 对象中。我们将使用 hasKey()
函数,该函数允许我们依次检查对象中的键,以确定目标值是否存在。本实验将让你更好地理解如何在 JavaScript 中处理 JSON 对象。
This tutorial is from open-source community. Access the source code
💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版
在本实验中,我们将探索如何使用 JavaScript 检查目标值是否存在于 JSON 对象中。我们将使用 hasKey()
函数,该函数允许我们依次检查对象中的键,以确定目标值是否存在。本实验将让你更好地理解如何在 JavaScript 中处理 JSON 对象。
要检查目标值是否存在于 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 中练习更多实验来提升你的技能。