我想通过一个或多个给定的分隔符将数组拆分为子数组列表。
像这样的东西:
var myArray = [null, 5, 'whazzup?', object, '15', 34.6];
var mySeperators = [null, '15'];
splitArray(myArray, mySeperators)
应该导致:
[[], [5, 'whazzup?', object], [34.6]]
源数组可以多次包含分隔符。如何做到这一点?
当它使解决方案变得更容易时,我正在使用mootools作为基础库。
最佳答案
给定ECMAScript 5,可以使用Array#reduce
来实现:
myArray.reduce(function(currentArrays, nextItem) {
if(~mySeparators.indexOf(nextItem))
currentArrays.push([]);
else
currentArrays[currentArrays.length - 1].push(nextItem);
return currentArrays;
}, [[]]);
我没有MooTools的经验;但是,如果需要向后兼容,则为appears to polyfill
Array#reduce
。