concat() 方法用于将两个数组拼接。
举例
var arr1 = ["Cecilie", "Lone"];
var myChildren = arr1.concat(["Emil", "Tobias", "Linus"]);
容易栽到的点是,concat的方法是返回一个新的数组,而不会改变原数组。
因此使用了之后一定要用一个变量把concat的结果存起来。
比如我写的时候就下意识的犯错,下面是一段反面教材,我希望通过点击按键,展示出数组拼接的结果:
<!DOCTYPE html>
<html>
<body>
<button onclick="fun()">按键</button>
<p id="demo1"></p>
<p id="demo2"></p>
<script>
var myChildren = ["Emma", "Isabella"];
document.getElementById("demo1").innerHTML = myChildren;
function fun(){
myChildren.concat(["Jacob", "Michael", "Ethan"]);
document.getElementById("demo2").innerHTML = myChildren;
}
</script>
</body>
</html>
显然错误的地方在于myChildren用完concat方法之后应该用一个变量把结果存起来,然后我改了一下函数:
function fun(){
var myChildren = myChildren.concat(["Jacob", "Michael", "Ethan"]);
document.getElementById("demo2").innerHTML = myChildren;
}
这句报错的原因应该是全局变量和局部变量的命名冲突,
在函数外定义了全局变量myChildren,在函数内又var了一个myChildren,
会出现冲突导致无法运行。
正确写法应该是
function fun(){
myChildren = myChildren.concat(["Jacob", "Michael", "Ethan"]);
document.getElementById("demo2").innerHTML = myChildren;
}
这个时候函数体内部被赋值的myChildren是什么都没有关系,设成a也可以。