扫码关注官方订阅号
将dubarr如何拆分为如下
即将dubarr中的数组根据arr中的数组拆分出新的nedubwarr
认证高级PHP讲师
遍历dubarr 遍历dubarr的item 遍历arr 判断item的item是不是等于当前的arr的 等于 就截断newdubarr新来一个[] 不等于就把当前的继续放入旧的数组里面
//不知道理解的对不对 var arr = [ [ 2, 3 ], [ 7, 8 ] ]; var dubarr = [ [ 0, 1, 2, 3, 4, 5 ], [ 7, 8, 9 ]]; function testData(arr,dubarr) { var nedubwarr = []; var t = []; var m = []; dubarr.forEach((item,index)=>{ nedubwarr = nedubwarr.concat(item); }); nedubwarr.forEach((item,index)=>{ m.push(item); if(index%arr[0].length){ t.push(m.slice()); m = []; } }); (nedubwarr.length % arr[0].length !== 0) && t.push(m); return t; } console.log(testData(arr,dubarr));
Hmmmmm....这个很麻烦啊,而且有些需求不是很明确
我可以先提供一个helper function:
function cutArr(arr, cutter) { var cutter = cutter.join(); return arr.join() .split(cutter) .join('#' + cutter + '#') .split('#') .filter(ele => ele !== "") .map(ele => ele.split(",").filter(el => el !== "")); } console.log(cutArr([0,1,2,3,4,5], [2,3]));
这个可以用来把一个数组拆分开来。接下来就不是很明确了,dubarr和arr里的元素是一一对应,还是一对多,还是多对多?复杂程度依次递增。
dubarr
arr
按照问题里的情况(最简单的一对一):
var arr = [[2, 3], [7, 8]]; var dubarr = [[0,1,2,3,4,5], [7,8,9]]; var i = 0; var newdubarr = dubarr.reduce( (acc, ele) => acc.concat(cutArr(ele, arr[i++])), []);
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
Hmmmmm....这个很麻烦啊,而且有些需求不是很明确
我可以先提供一个helper function:
这个可以用来把一个数组拆分开来。接下来就不是很明确了,
dubarr和arr里的元素是一一对应,还是一对多,还是多对多?复杂程度依次递增。按照问题里的情况(最简单的一对一):