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