【Underscore.js】_.omitを読んだ
jashkenas/underscoreの_.omitを読んだ。
概要
_.omit(object, *keys)
第1引数から第2引数以降で指定したkey値以外のkey値とその値で構成されたObjectを返す。
var x = _.omit( {age: 20, sex: "male", country: "JP", name: "HOGA"}, ['age', 'sex']); console.log(x); // {country: "JP", name: "HOGA"}
ソースコード
_.omit = function(obj, iteratee, context) { if (_.isFunction(iteratee)) { iteratee = _.negate(iteratee); } else { var keys = _.map(flatten(arguments, false, false, 1), String); iteratee = function(value, key) { return !_.contains(keys, key); }; } return _.pick(obj, iteratee, context); };
var keys = _.map(flatten(arguments, false, false, 1), String);
をしているのは、JSのobjectのkeyはString型であり、_.containsは===で比較するため。