JavaScript concat方法的结果顺序

7
拼接结果的顺序是否总是保持不变?
var alpha = ['a', 'b', 'c'];
var numeric = [1, 2, 3];

alpha.concat(numeric);
// result in ['a', 'b', 'c', 1, 2, 3]

3
有人给问题点踩,但没有人解释是哪里有问题?也没有人投票关闭问题?很奇怪... - Jonas Wilms
1
我觉得这是一个有效的问题,给你点个赞。但是我还是想建议你通过谷歌搜索这样的问题,因为这不是一个调试问题,而且会导致主观性很强的答案和链接。 - AndrewL64
@JonasW。这个问题是切题、清晰且可回答的,但它没有展示出任何研究努力。 - Sebastian Simon
@xufox 当然。那么为什么三个投票者没有写这个呢?投票是无知的无意义的标志。 - Jonas Wilms
@JonasW。这个原因已经在向下投票箭头的工具提示中解释了:“这个问题没有展示任何研究努力;它不清楚或者没有用处”。 - Sebastian Simon
@Xufox 我最受欢迎的问题(https://dev59.com/NWw05IYBdhLWcg3w11a0)与这个非常相似。答案可以概括为“是的,在规范中有说明”。到目前为止,它还没有被踩过。当我在2011年提出这个问题时,我甚至从未听说过ECMAScript,也不知道该去哪里寻找;今天这位OP很可能也是如此。他已经尝试了至少一个测试用例,并得到了他所期望的结果。现在只想确认他可以依赖这种行为。 - Paul
1个回答

15

是的,它是这样的。

来自 MDN(重点是我的):

concat 方法创建一个新数组,由调用对象中的元素组成,后面按顺序跟随每个参数的元素

来自 ECMAScript 规范(重点是我的):

当使用零个或多个参数调用 concat 方法时,它返回一个包含对象的数组元素,后面按顺序跟随每个参数的数组元素的数组。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接