-2
比方说,我有这样的数组:如何将数组分成包含相同值的JavaScript数组?
[1, 1, 2, 1, 3, 3, 3];
我怎么能这个数组分成这个子阵:
[1, 1], [2], [1], [3, 3, 3];
第二个例子: 当它在阵列2个相同的元素,他们应该返回[1, 1]
;
[1, 1] -> [1, 1]
比方说,我有这样的数组:如何将数组分成包含相同值的JavaScript数组?
[1, 1, 2, 1, 3, 3, 3];
我怎么能这个数组分成这个子阵:
[1, 1], [2], [1], [3, 3, 3];
第二个例子: 当它在阵列2个相同的元素,他们应该返回[1, 1]
;
[1, 1] -> [1, 1]
使用reduce
你也可以做,(我觉得这更易读)
var arr = [1, 1, 2, 1, 3, 3, 3],
arrsplit = arr.reduce(function (acc, val) {
var inner;
if (acc.previous !== val) {
inner = [];
} else {
inner = acc.newArray.pop();
}
inner.push(val);
acc.previous = val;
acc.newArray.push(inner);
return acc;
}, {
previous: null,
newArray: []
});
document.getElementById('out').textContent = JSON.stringify(arrsplit.newArray);
<pre id="out"></pre>
非常感谢!我很感激它:> –
你应该告诉我们你的努力来解决这个你自己。 – Oka
欢迎来到Stackoverflow。请为这样的简单问题做一些研究。 –
显示你的尝试。 –