如何将一个数组分成左右两个部分?

4

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

3个回答

8
您可以使用 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
    };

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)
    };

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) );


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接