【Underscore.js】_.mapを読んだ
jashkenas/underscoreの_.mapを読んだ。
概要
第一引数で与えられたものの値に対して、第二引数の関数を実行してその結果の配列を返す。
var list = [2, 3, 4]; var x = _.map(list, function(n){ return n *= 3; }); console.log(x); // [6, 9, 12]
var list = {a: 2, b: 3, c: 4}; var x = _.map(list, function(n){ return n *= 3; }); console.log(x); // [6, 9, 12]
// Return the results of applying the iteratee to each element. _.map = _.collect = function(obj, iteratee, context) { iteratee = cb(iteratee, context); var keys = !isArrayLike(obj) && _.keys(obj), length = (keys || obj).length, results = Array(length); for (var index = 0; index < length; index++) { var currentKey = keys ? keys[index] : index; results[index] = iteratee(obj[currentKey], currentKey, obj); } return results; };
関数の実行結果をresultsに入れているので、第二引数で指定する関数では戻り値をreturnしないとだめ。
参考