開発環境
- OS X El Capitan - Apple (OS)
- Emacs (Text Editor)
- JavaScript (プログラミング言語)
- Node.js(JavaScript Engine)
Eloquent JavaScript(Marijn Haverbeke 著、No Starch Press)のPart 1(Language)、Chapter 5(Higher-Order Functions)、Exercises(Historical Life Expectancy)を取り組んでみる。
Exercises(Historical Life Expectancy)
コード(Emacs)
'use strict';
var ancestry = JSON.parse(require('./ancestry')),
by_century = {},
centuries,
average;
ancestry.forEach(function (person) {
var century = Math.ceil(person.died / 100),
age = person.died - person.born;
if (by_century[century] === undefined) {
by_century[century] = [age];
} else {
by_century[century].push(age);
}
});
average = function (ary) {
return ary.reduce(function (x, y) {
return x + y;
}, 0) / ary.length;
};
centuries = Object.keys(by_century);
centuries.sort(function (x, y) {
return x- y;
});
centuries.forEach(function (century) {
console.log('century: ' + century +
', average: ' + average(by_century[century]));
});
入出力結果(Terminal, Node.js)
$ node sample3.js century: 16, average: 43.5 century: 17, average: 51.2 century: 18, average: 52.78947368421053 century: 19, average: 54.833333333333336 century: 20, average: 84.66666666666667 century: 21, average: 94 $
0 コメント:
コメントを投稿