JavaScript 数组合并与拆分

数组合并

  1. concat Array对象提供了一个叫concat()方法
    1
    2
    3
    var a = [1,2,3];
    var b = [4,5,6];
    var c = a.concat(b);//c=[1,2,3,4,5,6]
  1. apply
    apply方法有一个特性,那就是func.apply(obj,argv),argv是一个数组

    1
    a.push.apply(a,b)
  2. 扩展 「…」
    扩展运算符(spread)是三个点(…)

    1
    a.push(...b)
  3. for 循环?? 。。。还是不要了吧,珍惜生命。

数组拆分

1
2
3
4
5
6
7
8
9
10
function slicArry(arry,rows){
var result = [];
for(var i=0,len=arry.length;i<len;i+=rows){
result.push(arry.slice(i,i+rows));
}
return result;
}

var t = ['法国','澳大利亚','智利','新西兰','西班牙','加拿大','阿根廷','美国','0','国产','波多黎各','英国','比利时','德国','意大利','意大利',];
console.dir( slicArry(t,3));

结果

1
2
3
4
5
6
[ [ '法国', '澳大利亚', '智利' ],
[ '新西兰', '西班牙', '加拿大' ],
[ '阿根廷', '美国', '0' ],
[ '国产', '波多黎各', '英国' ],
[ '比利时', '德国', '意大利' ],
[ '意大利' ] ]
  1. 用ramda.js 的splitEvery 一行搞定
    1
    2
    R.splitEvery(3, [1, 2, 3, 4, 5, 6, 7]); //=> [[1, 2, 3], [4, 5, 6], [7]]
    R.splitEvery(3, 'foobarbaz'); //=> ['foo', 'bar', 'baz']