如何在数组内打印带有一组对的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
被分配值2
和b
被分配值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++ 中使用两个排序标准(对于一组对)创建一个有序集?