如何找到每個元素出現在嵌套數組中的最大次數?如何找到每個元素出現在嵌套數組中的最大次數?
我正在尋找每個元素出現在任何子陣列中的最大次數。我不是在整個嵌套數組中查找出現次數最多的元素。假設我的嵌套數組是[[2,3,5],[3,3,5],[2,3,2]。
數字2在其中一個子陣列中出現兩次。數字3在其中一個子陣列中出現兩次。數字5出現在其中一個子陣列中。
我正在尋找的最終結果是[2,2,3,3,5]。
這樣做的最好方法是什麼?下面是我的做法,這不是很好。
function makeNewArray(arr) {
// add the # to the numbers that appear once and add the ## to the numbers that appear twice
for (var j = 0; j < arr.length; j++) {
for (var i = 0; i < arr[j].length; i++) {
if (arr[j][i] === arr[j][i+1]) {
arr[j][i] = arr[j][i] + '#';
arr[j][i+1] = arr[j][i+1] + '#';
} else {
arr[j][i] = arr[j][i] + '#';
}
}
}
// flatten the array
arr = arr.reduce(function(a, b) { return a.concat(b); });
// remove the duplicates from the array
arr = arr.filter(function(a, b) { return arr.indexOf(a) == b; });
// remove the ## and # from the array
for (var i = 0; i < arr.length; i++) {
arr[i] = parseInt(arr[i]);
}
return arr;
}
makeNewArray([[2, 3, 5], [3, 3, 5], [2, 2, 3, 5]]);
你如何獲得[2,3,5,3,2] – James