【Underscore.js】_.withoutを読んだ
jashkenas/underscoreの_.withoutを読んだ。
概要
_.without(array, *values)
arrayからvaluesを除いた配列を返す。
var list = [1, 10, 7, 190, 43]; var x = _.without(list, 7, 43 ,190); console.log(x); // [1, 10]
ソースコード
_.without = function(array) { return _.difference(array, slice.call(arguments, 1)); }; _.difference = function(array) { var rest = flatten(arguments, true, true, 1); return _.filter(array, function(value){ return !_.contains(rest, value); }); };
flattenで、第二引数以降の値を取り出している。 その後、.filterと.containsを用いて、配列に値が含まれているかをチェックしている。