我有这个数组:
var arr = ['a','a','b','b','b','c','d','d','a','a','a'];
我希望这个输出:
[ ['a','a'], ['b','b','b'], ['c'], ['d','d'], ['a','a','a'], ]
观察:请注意,我不想对所有重复值进行分组。仅连续重复值。
谁能帮我?
解决方案与Array.prototype.reduce()以及前一个元素的视图。
var arr = ['a', 'a', 'b', 'b', 'b', 'c', 'd', 'd', 'a', 'a', 'a'], result = []; arr.reduce(function (r, a) { if (a !== r) { result.push([]); } result[result.length - 1].push(a); return a; }, undefined); document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');