现在有一个数组[1,2,3,4,5,6,7]
我希望按照4所在的位置把数组分为两部分,
第一个部分是[1,2,3,4],第二个部分是[5,6,7]
有没有什么好办法呢?我注意到lodash里面的trunk或者网上的一些函数都是等分的
var arr1 = [1,2,3,4,5,6,7];
var arr = arr1.map(function(item,index,array){
return item*item*item;
})
返回的新数组arr则是元素立方运算后的新数组
var arr = [1,2,3,4,5,6,7];
var i = arr.indexOf(4)+1;
var a = arr.slice(0,i);
var b = arr.slice(i);
如果是按照下标号去分割
var arr = [1,2,3,4,5,6,7];
var i = 4;
var a = arr.slice(0,i);
var b = arr.slice(i);
var index = Math.ceil((arr.length+1)/2);
var arr1 = arr.slice(0,index);
var arr2 = arr.slice(index,arr.length-1);
/**
* 数组分割
* @param list 数组
* @param item 分割表示
* @retuen obj before:标识前数据 after:标识后数据
*/
function segmentation(list,item){
const obj = {before:[],after:[]}
const itemIdx = list.indexOf(item);
obj.before = list.slice(0,itemIdx+1);
obj.after = list.slice(itemIdx+1);
return obj
}
执行案例如下图:
控制台输出如下图: