[英]How to get distinct count of occurrence of string
給定以下字符串
A7sus4, A, A#, A#4, A#7, A#dim, B11, Bm6, Gmaj7
我想像這樣獲得每個數據塊的第一個值
A, A, A, A, A, A, B, B, G
然后進一步分解它,以便最后我得到每個不同事件的計數
A,6
B,2
G,1
您可以使用哈希表進行計數,其中根線注釋是關鍵。
var data = [{ cordname: 'A7sus4', fingering: '002030', fret: 1 }, { cordname: 'A', fingering: 'x02220', fret: 1 }, { cordname: 'A#', fingering: 'x13331', fret: 1 }, { cordname: 'A#4', fingering: 'xx3341', fret: 1 }, { cordname: 'A#7', fingering: 'xx1112', fret: 3 }, { cordname: 'A#dim', fingering: 'xx2323', fret: 1 }, { cordname: 'B', fingering: '', fret: -1 }], count = Object.create(null); data.forEach(a => count[a.cordname[0]] = (count[a.cordname[0]] || 0) + 1); console.log(count);
第二次嘗試,對於編輯問題,拆分字符串並重新輸入字符串的第一個字符。
var data = 'A7sus4, A, A#, A#4, A#7, A#dim, B11, Bm6, Gmaj7'.split(', '), count = Object.create(null); data.forEach(a => count[a[0]] = (count[a[0]] || 0) + 1); console.log(count);
假設
var d = ["A","B","A","A","A","C","A","C"];
然后
['A','B','C'].forEach(x => console.log(x, d.filter(f => (f==x)).length));
假設第一個數組列出了要查找的筆記。
獲取結果對象
var r = {};
['A','B','C','D'].forEach(x => r[x] = d.filter(f => (f==x)).length);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.