检查对象是否有键

JavaScriptJavaScriptBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将探索如何使用 JavaScript 检查目标值是否存在于 JSON 对象中。我们将使用 hasKey() 函数,该函数允许我们依次检查对象中的键,以确定目标值是否存在。本实验将让你更好地理解如何在 JavaScript 中处理 JSON 对象。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("`JavaScript`")) -.-> javascript/BasicConceptsGroup(["`Basic Concepts`"]) javascript(("`JavaScript`")) -.-> javascript/AdvancedConceptsGroup(["`Advanced Concepts`"]) javascript/BasicConceptsGroup -.-> javascript/variables("`Variables`") javascript/BasicConceptsGroup -.-> javascript/data_types("`Data Types`") javascript/BasicConceptsGroup -.-> javascript/arith_ops("`Arithmetic Operators`") javascript/BasicConceptsGroup -.-> javascript/comp_ops("`Comparison Operators`") javascript/BasicConceptsGroup -.-> javascript/cond_stmts("`Conditional Statements`") javascript/BasicConceptsGroup -.-> javascript/array_methods("`Array Methods`") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("`Destructuring Assignment`") subgraph Lab Skills javascript/variables -.-> lab-28520{{"`检查对象是否有键`"}} javascript/data_types -.-> lab-28520{{"`检查对象是否有键`"}} javascript/arith_ops -.-> lab-28520{{"`检查对象是否有键`"}} javascript/comp_ops -.-> lab-28520{{"`检查对象是否有键`"}} javascript/cond_stmts -.-> lab-28520{{"`检查对象是否有键`"}} javascript/array_methods -.-> lab-28520{{"`检查对象是否有键`"}} javascript/destr_assign -.-> lab-28520{{"`检查对象是否有键`"}} end

用于检查对象是否有键的 JavaScript 函数

要检查目标值是否存在于 JavaScript 对象中,请使用 hasKey 函数。

该函数接受两个参数:obj,要在其中搜索的 JSON 对象,以及 keys,要检查的键数组。以下是检查对象是否具有给定键的步骤:

  1. 检查 keys 数组是否非空。如果为空,则返回 false
  2. 使用 Array.prototype.every() 方法遍历 keys 数组,并依次检查每个键到 obj 的内部深度。
  3. 使用 Object.prototype.hasOwnProperty() 方法检查 obj 是否没有当前键或不是一个对象。如果这些条件中的任何一个为真,则停止传播并返回 false
  4. 否则,将键的值赋给 obj 以供下一次迭代使用。
  5. 如果成功遍历了 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 中练习更多实验来提升你的技能。

您可能感兴趣的其他 JavaScript 教程