Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript:使用concat函数的两种方法_Javascript_Arrays - Fatal编程技术网

javascript:使用concat函数的两种方法

javascript:使用concat函数的两种方法,javascript,arrays,Javascript,Arrays,下面是使用concat的两种不同方法nameage和nameage2会产生一些不同的结果,在不同的浏览器中对这些结果的描述似乎也有所不同 var name = ["david","ibrahim","lagan"]; var age = [23, 34, 24]; var nameage = name.concat(age); var nameage2 = [name].concat(age); 例如,在chrome中: console.log(nameage)产生“大卫,易卜拉欣,拉甘23

下面是使用
concat
的两种不同方法
nameage
nameage2
会产生一些不同的结果,在不同的浏览器中对这些结果的描述似乎也有所不同

var name = ["david","ibrahim","lagan"];
var age = [23, 34, 24];

var nameage = name.concat(age);
var nameage2 = [name].concat(age);
例如,在chrome中:
console.log(nameage)产生“大卫,易卜拉欣,拉甘23,34,24”,而
console.log(nameage2)产生“[“大卫,易卜拉欣,拉甘”,23,34,24]”


有人能解释一下这两种方法之间的区别,以及它如何影响
concat
的使用吗?(有一种方法更“正确”吗?)

在第二种方法中,将“name”数组作为其第一个元素放入数组中,然后将“age”数组连接到该数组上

因此:

给你

[ [ "david", "ibrahim", "lagan" ] ]
它是数组中的一个数组。当你连接到上面时,你会

[ [ "david", "ibrahim", "lagan" ], 23, 34, 24 ]

将您发布的两个示例视为两种“方法”是不正确的——它们是两种完全不同的东西。哪个是“正确的”?这取决于你想要什么结果

在第二个数组中,将“name”数组作为第一个元素放入数组中,然后将“age”数组连接到该数组上

因此:

给你

[ [ "david", "ibrahim", "lagan" ] ]
它是数组中的一个数组。当你连接到上面时,你会

[ [ "david", "ibrahim", "lagan" ], 23, 34, 24 ]

将您发布的两个示例视为两种“方法”是不正确的——它们是两种完全不同的东西。哪个是“正确的”?这取决于你想要什么结果

这是有道理的;而且它与Firefox显示结果的方式一致。你知道为什么在Chrome中,“lagan”和“23”之间省略了逗号吗?似乎它应该是“所有一个数组”,因此包括逗号.Hmm。。当我
console.log()。它正确显示逗号。对于第一个版本(
nameage
)?有趣。它使用
console.log()
document.write()
@GregoryTippett-wow-Chrome确实在做一些非常奇怪的事情。我很困惑。@GregoryTippett啊-我认为这与在全局上下文中使用变量名“name”有关。试着用“theName”代替“name”。(全局上下文中的标识符“name”是特殊的,因为它与窗口的内部名称有关?或者类似的名称?我不确定。)这是有意义的;而且它与Firefox显示结果的方式一致。你知道为什么在Chrome中,“lagan”和“23”之间省略了逗号吗?似乎它应该是“所有一个数组”,因此包括逗号.Hmm。。当我
console.log()。它正确显示逗号。对于第一个版本(
nameage
)?有趣。它使用
console.log()
document.write()
@GregoryTippett-wow-Chrome确实在做一些非常奇怪的事情。我很困惑。@GregoryTippett啊-我认为这与在全局上下文中使用变量名“name”有关。试着用“theName”代替“name”。(全局上下文中的标识符“name”是特殊的,因为它与窗口的内部名称有关?或者类似的东西?我不确定。)