Skip to content

Instantly share code, notes, and snippets.

@mdk-aza
Last active August 29, 2015 14:13
Show Gist options
  • Save mdk-aza/607ad448d7c8c6f7fe09 to your computer and use it in GitHub Desktop.
Save mdk-aza/607ad448d7c8c6f7fe09 to your computer and use it in GitHub Desktop.
/// <reference path='typings/tsd.d.ts' />
//関数定義
var countFruitsFromLines = (list:string[]) => {
return _
.chain(list)
.map(function (_list) {
//文字列分割の処理を配列の中身に行う。
return _list.split(' ');
})
//階層的リストに対しても全て展開してリストにする。
.flatten()
//再帰的処理を行う。
.reduce(function (counts, word) {
counts[word] = (counts[word] || 0) + 1;
return counts;
}, {})
.value();
}
var list:string[] = ["apple banana", "orange apple mango", "kiwi papaya orange", "mango orange muscat apple"];
console.log(countFruitsFromLines(list));
//実行結果
//{apple: 3, banana: 1, orange: 3, mango: 2, kiwi: 1, muscat: 1, papaya: 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment