[Leetcode] 对象是否为空

[leetcode] 对象是否为空

问题链接:https://leetcode.com/problems/is-object-empty/description/

[问题陈述]

给定一个对象或数组,如果为空则返回。

空对象不包含键值对。空数组不包含任何元素。

您可以假设对象或数组是 json.parse 的输出。

[理解问题]

sooo…我们得到一个数组或一个对象作为这个名为 obj 的函数的参数。 (是的,我知道,超级有创意的名字,但稍后就会有意义!)

我们的任务?执行一些神奇的编码技巧,首先确定该 obj 是数组还是对象。然后,根据这些知识,我们将决定下一步做什么。

最后,我们需要检查这个对象/数组是否为空。很简单,对吧? (或者是……)

[要点]

首先要做的事情:“从技术上讲,数组是 javascript 中的一个对象。”是的!没错,数组是 js 中一种特殊类型的对象。所以,不要混淆!

对象检测101:我们可以通过使用 typeof obj === ‘object’ && obj !== null 来检查参数是否实际上是一个对象(或数组)。为什么 !== null 部分?嗯,因为 null 是 js 中的一个特例。尽管从技术上讲它是对象类型,但它就像虚无的空虚。因此,我们排除了这一点,以防万一(即使问题没有明确提及,这是一个好习惯)。

未定义和空元素:对象和数组都可以具有未定义或空的属性/元素。但不用担心——当我们检查长度时它们仍然会计算在内。他们没有从我们的验证中获得免费通行证!

它是一个数组吗?:我们可以使用 array.isarray(obj) 检查参数是否是一个数组。不过,无需再次检查它是否是一个对象——我们之前已经这样做了。

[解决方案代码]

var isEmpty = function (obj) {  if (typeof obj === "object" && obj !== null) { // Check if it's an object and not null    if (Array.isArray(obj)) { // If it's an array      return obj.length === 0; // Return true if it's empty    } else { // If it's an object      return Object.keys(obj).length === 0; // Return true if there are no keys    }  }  return false; // If it's neither an object nor an array, return false};

登录后复制

[进一步分解……]

第 1 步:检查它是否是一个对象
首先,我们使用 typeof obj === ‘object’ && obj !== null 来确保输入是一个对象而不是 null。 (因为我们都知道 typeof null === ‘object 是 javascript 的怪癖之一。谢谢 javascript!)

第2步:它是一个数组吗?
我们使用 array.isarray(obj) 来区分数组和常规对象。数组有一个 length 属性,所以我们可以直接检查 obj.length === 0.

第3步:它是一个对象吗?
如果它不是数组,我们使用 object.keys(obj).length === 0 检查它是否是一个对象。此方法返回对象中键的数量。没有钥匙?空了!

第 4 步:默认情况
如果输入不是对象(或者为 null),我们将返回 false,因为问题指定我们仅使用对象或数组。

以上就是[Leetcode] 对象是否为空的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2667586.html

(0)
上一篇 2025年3月7日 12:20:44
下一篇 2025年2月17日 23:42:31

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • extjs API 查询参数示例

    api 查询 参数是附加到 api 请求的 url 的键值对,用于向服务器发送附加信息。它们允许客户端(例如网络浏览器或应用程序)在向服务器发出请求时指定某些条件或传递数据。 查询参数添加到 url 末尾的问号 (?) 后面。每个参数都是一…

    2025年3月7日
    200
  • typescript的数据类型

    TypeScript 提供了强类型安全性,强制执行变量和表达式的明确数据类型。它支持基本类型(数字、字符串、布尔值、空值和未定义值)和引用类型(数组、对象和函数),以及枚举类型、联合类型、类型别名和类型断言,从而提高了代码的可维护性、可读性…

    2025年3月7日
    200
  • typescript定义数据类型

    TypeScript 中的数据类型用于指定变量存储的值的类型,从而确保代码类型安全和防止运行时错误。这些数据类型包括:基本数据类型:number、string、boolean、null 和 undefined复合数据类型:数组、对象和 en…

    2025年3月7日
    200
  • typescript的数据类型有哪些

    TypeScript 是强类型语言,数据类型包括:原始数据类型:number、string、boolean、null、undefined结构化数据类型:array、object、tuple、enum函数数据类型:function、arrow…

    2025年3月7日
    200
  • Javascript重要概念||重要的 JavaScript 概念

    逐步使用代码示例来帮助您更好地理解每个概念。 1. js简介 javascript 是一种多功能语言,可以在浏览器或服务器上运行(使用 node.js)。它用于使网页具有交互性。 hello, javascript! click me fu…

    2025年3月7日
    200
  • js如何定义对象

    JavaScript 中,对象是一种键值对数据结构,使用花括号定义,键值对以冒号分隔,键值对之间以逗号分隔。可以通过点符号或方括号访问和修改属性,还可以添加或删除属性。对象可以嵌套其他对象,通过点符号访问嵌套属性。 如何在 JavaScri…

    2025年3月7日
    200
  • js如何使用集合

    JavaScript 中集合是一种存储唯一值的数据结构。使用 Set 对象创建集合,可通过构造函数或 Set.from() 方法。通过 add() 和 delete() 方法添加或删除元素,并使用 has() 检查元素是否存在。遍历集合可通…

    2025年3月7日
    200
  • js如何获取map的值

    JavaScript Map 中的值可以通过两种主要方式获取:1. 使用 get() 方法根据键检索特定值;2. 使用 forEach() 方法遍历所有键值对并在回调函数中获取值。选择哪种方法取决于需要获取的值的数量以及是否需要遍历 Map…

    2025年3月7日
    200
  • 对象如何使用js

    对象是存储数据和行为的 JavaScript 集合,包含属性(键值对)和方法(函数)。创建对象可通过对象字面量或 new 运算符。通过点号或方括号运算符访问属性,并可使用赋值运算符添加或 delete 运算符删除属性。对象方法存在于属性中,…

    2025年3月7日
    200
  • js如何转对象

    将 JavaScript 对象转换为字符串有三种方法:使用 JSON.stringify() 转换对象为 JSON 字符串,推荐使用;使用 toString() 转换对象为字符串,但行为可能因对象而异;使用 eval()(不推荐)从字符串中…

    2025年3月7日
    200

发表回复

登录后才能评论