【问题标题】:How to print JavaScript array with set of pairs inside array [duplicate]如何在数组内打印带有一组对的JavaScript数组[重复]
【发布时间】:2020-12-21 05:15:22
【问题描述】:

我正在浏览有关数组和对象的 JavaScript 文档。我发现了一个关于数组的独特查询

var a= [1,2,3]
console.log(a)     // give [1,2,3]


var b = [(1,2) , (3,4) , (5,6)]
console.log(b)     // gives [2,4,6]

我不明白它背后的逻辑。它只是在我脑海中闪过。如果我们在 python 中做同样的事情

a = [(1,2),(3,4)]
print(a)     // [(1,2),(3,4)]

有人可以解释一下吗,有人可以解释一下如何在 JavaScript 中获得相同的输出,就像我在 python 中获得的方式一样。如何在 javascript 中遍历数组中的所有元素

【问题讨论】:

  • JavaScript 中表达式(1,2) 的结果是2。见Grouping operator ()Comma operator (,)
  • 在 JavaScript 括号中创建数据类型的方式与在 Python 中不同。
  • 我明白你的意思并理解你的回答。但是现在迭代呢?在我的情况下,我如何循环遍历该数组中的所有元素?有什么办法吗
  • 在这种情况下,您不应使用分组运算符()。 javascript !== 蟒蛇。如果你用 javascript 编码,那么用 javascript 思考

标签: javascript node.js arrays multidimensional-array ecmascript-6


【解决方案1】:

我不是 Python 程序员,但这些括号在 Python 和 JavaScript 之间的功能不同。

我理解在 Python 中它们表示元组文字。在 JavaScript 中,它们只是对事物进行分组,它们说“执行每个语句并返回最后一个语句”。这就是为什么您只能在 JS 数组中看到一些项目。

另见https://stackoverflow.com/a/25280412/1371131

【讨论】:

  • 这是一个更好的副本。感谢您的链接
【解决方案2】:

你遇到的是逗号。

当没有其他上下文时,表达式中的, 的行为类似于运算符,就像+=/ 等一样。

逗号操作符的行为如下:

  • 计算第一个表达式
  • 忽略第一个表达式的结果
  • 计算第二个表达式
  • 返回第二个表达式的值

于是下面的代码:

a = 1,2;
b = 1,2,3,4;

将导致a 被分配值2b 被分配值4

这可能看起来有点傻,因为我们已经有了;,但是如果您需要在单个表达式上下文中发生多个事情,逗号运算符很有用。例如,如果您需要在for 循环的其中一个条件中发生不止一件事,则不能使用;,因为它用于分隔条件表达式。逗号运算符来拯救:

for (let a = 0, b = 0;   a < 10;   a++, b++) { //...
//          ^                          ^
//          |                          |____  two things happen here
//          |_______________________________  and here

所以(1,2) 只是写2 的另一种方式。

因此[(1,2) , (3,4) , (5,6)][2,4,6] 是同一个数组。

就像[1+1, 2+2, 3+3][2,4,6] 是同一个数组。

它们只是写[2,4,6] 的不同方式。与您不能循环遍历数组并从[1+1, 2+2, 3+3] 提取1+ 的方式相同,您也不能循环遍历数组并从[(1,2) , (3,4) , (5,6)] 提取(1,

如果你真的需要一个对数组,你需要使用一个数组数组:

a = [[1,2],[3,4],[5,6]]

【讨论】:

  • 我明白你的意思并理解你的回答。但是现在迭代呢。在我的情况下,我如何循环遍历该数组中的所有元素。有没有办法做到这一点
  • 你意识到你只有一个[2,4,6]的数组吗?就像我说的(1,2) 只是写2 的一种奇特方式。没有像(1,2) 这样的数据结构。所以你像正常一样循环
  • 如果你真的想要一个对数组,你需要使用一个数组数组:[[1,2],[3,4],[5,6]]。无法从(1,2) 恢复值1,因为它被丢弃,因此(1,2) 的值是2
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-03
  • 1970-01-01
  • 1970-01-01
  • 2017-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多