-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。請爲這樣的簡單問題做一些研究。 –
顯示你的嘗試。 –