【问题标题】:What does comparing 2 Array mean in Javascript? [duplicate]在 Javascript 中比较 2 Array 是什么意思? [复制]
【发布时间】:2021-09-23 18:35:57
【问题描述】:

在我的 node.js REPL 中,我创建了 4 个数组: a = [1,2,3]b=[]c=[4,5]d=null(好吧,d 不是数组,但你明白我的意思)

我是这样直接比较的:

> b = []
[]
> a > b
true
> b > a
false
> a > c
false
> c > a 
true
> c > b
true
> b > c
false
> d > a
false
> a > d
false

这些表达式实际上在计算什么? 我看到这显然不是数组的长度。否则c > a 将是false

谁能帮我理解一下!

【问题讨论】:

  • 你需要学习很多 javascript 的隐式转换(我个人更喜欢显式转换,像这样比较数组只会抛出,但它就是这样),然后一个接一个地使用它们。跨度>
  • 简而言之,JavaScript 将数组转换为其他类型,并使用该类型的比较器进行 operator> 评估。由于这些结果没有任何有价值的语义含义,因此它基本上是一个毫无意义的操作,如果您需要该功能,您应该创建自己的例程来比较数组。进一步强调 为什么 JavaScript 选择以这种方式实现事物并没有太大意义,因为还有许多其他奇怪的 JavaScript 行为示例。

标签: javascript node.js arrays node-repl


【解决方案1】:

数组首先被转换为字符串(包括逗号)。

[1, 2, -3] 例如变成字符串'1,2,-3'

然后字符串按“字母”顺序(基于它们的字符代码)进行比较。

这不是一种非常直观的比较方式,应该避免。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-15
    • 2018-07-17
    • 1970-01-01
    • 2011-04-16
    • 2020-10-04
    • 2014-07-28
    • 2015-04-17
    • 2018-02-26
    相关资源
    最近更新 更多