簡體   English   中英

如何獲得字符串出現的不同計數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM