【问题标题】:JS: Check if array is empty through JSON.stringify(arr) == "[]"?JS:通过 JSON.stringify(arr) == "[]" 检查数组是否为空?
【发布时间】:2017-06-15 02:41:37
【问题描述】:

在编码时,我经常使用 JSON.stringify 检查数组是否为空

它一直有效,但我经常使用它,不知道是否适合使用 JSON.stringify 来检查数组是否为空。

例子:

var arr = [];
if(JSON.stringify(arr) == "[]"){
   alert("Array is empty);
}

我的问题不是如何检查数组是否为空。 我问我使用它的方式是正确还是低效。

我知道有很多方法可以检查数组是否为空。

谢谢

【问题讨论】:

  • 为什么不是 arr.length == 0?
  • 这是检查数组是否为空的一种非常浪费的方法,尤其是当数组恰好很大时。使用arr.length
  • “我想知道这个方法是否也正确。如果它是错误的,我会更正我的代码。” - 你应该改用arr.length不管什么其他方法可能会奏效,因为所有其他选择都更糟。
  • 这不是错误的,因为它会为您提供正确的答案。然而,这是一种昂贵的实现方式。
  • 来吧,伙计们,让我们坚持基础,不要混淆已经足够困惑的OP。 new Array(1)[undefined] 都不是空数组!一个空数组是其中包含 nothingzero 个元素、zero 个槽、nothing 的数组。我们不能就此达成一致吗?是的,当我说 new Array(1)[undefined] 相同,但两者都不是 empty 数组时,我说错了。

标签: javascript jquery arrays


【解决方案1】:
if(arr.length === 0) {
   alert("Array is empty);
}

【讨论】:

  • 为什么使用!
  • 抱歉打错了
【解决方案2】:

使用Array.length length 为您提供数组的长度。

var arr = [];
if(arr.length == 0){
   alert("Array is empty);
}

【讨论】:

  • 看起来抄袭自@Kossel 下面的回答(它们都包含相同的错字)
  • 我不明白。你的意思是我复制了@Kossel 的答案?
  • @AnthonySottile - 这个错字出现在原始问题中。
【解决方案3】:

您可以使用.length 函数来检查数组是否为空。

如果数组中有item,则数组长度大于0,否则为0。

例如:

var arr = [];

if (arr.length == 0){
   alert("Array is empty");
}

【讨论】:

    猜你喜欢
    • 2017-09-13
    • 2011-11-04
    • 2022-01-25
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    相关资源
    最近更新 更多