javascript - 如何獲取一個數組中的相同元素的個數
問題描述
就是有一個數組,例如var numArr = ['A', 'C', 'B', 'A', 'C', 'D', 'A', 'C'],如何篩選出相同的元素,還有相同元素的個數
問題解答
回答1:簡單的循環不就出來了
回答2:['A', 'C', 'B', 'A', 'C', 'D', 'A', 'C','B'].reduce((r,v)=>{ r[0].has(v)?r[1][v]?r[1][v]++:r[1][v]=2:r[0].add(v); return r;},[new Set,{}])[1]// {A: 3, C: 3, B: 2}
是這種效果么?選出重復(出現次數大于等于2)的元素并統計每個重復元素出現的次數?
回答3:function checkArray(para, arr) { let processArr = arr.filter(function(value) {return value == para; }); return processArr.length; // 這里返回數組長度或者相應處理}console.log(checkArray(1, numArr));回答4:
可以用 Map
['1', '2', 2, 0, -0, NaN, NaN, [], [], {}, {}, undefined, , , null].reduce((m, k) => { return m.set(k, (m.get(k) || 0) + 1);}, new Map());
遵循以下規則:
NaN = NaN
+0 = -0
'1' != 1
{} != {}
[] != []
undefined != null
空元素不計
var obj={},arr=['A', 'C', 'B', 'A', 'C', 'D', 'A', 'C','B']//forfor(var i=0,len=arr.length;i<len;i++){ if(obj[arr[i]]){obj[arr[i]]++ } else{ obj[arr[i]]=1 }}//forEacharr.forEach(function(item,i){obj[arr[i]]?obj[arr[i]]++:obj[arr[i]]=1})
相關文章:
1. javascript - 如何將一個div始終固定在某個位置;無論屏幕和分辨率怎么變化;div位置始終不變2. html - vue項目中用到了elementUI問題3. javascript - 原生canvas中如何獲取到觸摸事件的canvas內坐標?4. javascript - vscode alt+shift+f 格式化js代碼,通不過eslint的代碼風格檢查怎么辦。。。5. javascript - 求解答:實例對象調用constructor,此時constructor內的this的指向?6. javascript - 有什么比較好的網頁版shell前端組件?7. java - 如何寫一個intellij-idea插件,實現編譯時修改源代碼的目的8. javascript - [js]為什么畫布里不出現圖片呢?在線等9. java 中Long 類型如何轉換成Double?10. html5 - 有可以一次性把所有 css外部樣式轉為html標簽內style=" "的方法嗎?
