返回介绍

solution / 2700-2799 / 2727.Is Object Empty / README

发布于 2024-06-17 01:03:00 字数 1864 浏览 0 评论 0 收藏 0

2727. 判断对象是否为空

English Version

题目描述

给定一个对象或数组,判断它是否为空。

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

你可以假设对象或数组是通过 JSON.parse 解析得到的。

 

示例 1:

输入:obj = {"x": 5, "y": 42}
输出:false
解释:这个对象有两个键值对,所以它不为空。

示例 2:

输入:obj = {}
输出:true
解释:这个对象没有任何键值对,所以它为空。

示例 3:

输入:obj = [null, false, 0]
输出:false
解释:这个数组有 3 个元素,所以它不为空。

 

提示:

  • obj 是一个有效的 JSON 对象或数组
  • 2 <= JSON.stringify(obj).length <= 105

 

你可以在 O(1) 时间复杂度内解决这个问题吗?

解法

方法一:遍历

我们可以遍历对象或数组,如果遍历到了第一个元素,就返回 false,否则返回 true

时间复杂度 $O(1)$,空间复杂度 $O(1)$。

function isEmpty(obj: Record<string, any> | any[]): boolean {
  for (const x in obj) {
    return false;
  }
  return true;
}
/**
 * @param {Object | Array} obj
 * @return {boolean}
 */
var isEmpty = function (obj) {
  for (const x in obj) {
    return false;
  }
  return true;
};

方法二

function isEmpty(obj: Record<string, any> | any[]): boolean {
  return Object.keys(obj).length === 0;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文