如何将数组拆分为2,左右

时间:2015-03-21 00:55:11

标签: javascript

我有一系列菜单链接['A','B','C','D','X','Y','Z'],我想将它们拆分成一个结果为{'left':['A','B','C','D'], 'right': ['X', 'Y','Z']}的数组。我希望他们分成两半。列表中的项目数可以变化。最简单的方法是什么?

3 个答案:

答案 0 :(得分:7)

您可以使用Array.prototype.slice从数组中提取子数组:

var arr = ['A','B','C','D','X','Y','Z'],
    mid = Math.ceil(arr.length/2),
    obj = {
        left: arr.slice(0, mid),
        right: arr.slice(mid)
    };

如果您不介意改变原始数组,也可以使用Array.prototype.splice

var arr = ['A','B','C','D','X','Y','Z'],
    obj = {
        left: arr.splice(0, Math.ceil(arr.length/2)),
        right: arr
    };

答案 1 :(得分:5)

使用slice函数将数组拆分为两部分。

var numbers= [1,2,3,4,5,6,7,8,9,10],
    leftEnd= Math.ceil(numbers.length/2),
    result= {
        left: numbers.slice(0,leftEnd),
        right: numbers.slice(leftEnd)
    };

答案 2 :(得分:1)



function splitInTwo(arr){
    var middle = Math.ceil(arr.length / 2);
    return {
        left: test.slice( 0, middle ),
        right: test.slice( middle )
    };
}

var test = ['A','B','C','D','X','Y','Z'];

document.body.innerHTML = JSON.stringify( splitInTwo(test) );