从总体上来讲:concat和push的apply都可以合并数组
var a = [1,3,5], b = [2,4,6], c = [7,9,8];
区别:
1. concat合并数组之后,返回值才是新数组,并且可以合并两个及其以上的数组。
a.concat(b,c);
console.log(a.concat(b,c));//[1, 3, 5, 2, 4, 6, 7, 9, 8]
console.log(a.concat(c))//[1, 3, 5, 7, 9, 8]
console.log(a);//[1, 3, 5],concat之后a没有变
2.push.apply合并数组是把后一个数组的值依次push进前一个数组,使前一个数组发生改变,并且只能两个数组之间发生合并。
a.push.apply(a,b,c);
console.log(a);//[1, 3, 5, 2, 4, 6] 没有把c合并进去
c.push.apply(c,b);
console.log(c); //[7, 9, 8, 2, 4, 6]
以上纯属个人理解,如有不足之处还望指点