如何在数组内打印带有一组对的JavaScript数组[重复]

Posted

技术标签:

【中文标题】如何在数组内打印带有一组对的JavaScript数组[重复]【英文标题】:How to print JavaScript array with set of pairs inside array [duplicate] 【发布时间】: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 思考 【参考方案1】:

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

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

另见https://***.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

以上是关于如何在数组内打印带有一组对的JavaScript数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中使用两个排序标准(对于一组对)创建一个有序集?

如何使用 React 过渡组对每个项目使用不同的延迟?

如何在javascript中的数组内添加数组

如何在javascript中打印元素异步推送到它的数组?

$Luogu$ $P5514$ $[MtOI2019]$ 永夜的报应

如何拆分字符串数组并返回带有键/值对的单个对象