Help us understand the problem. What is going on with this article?

underscoreコードリーディング(without)

More than 3 years have passed since last update.

underscoreに詳しくないので、勉強半分でソースコードを読む。

利用するバージョン

underscore.js(v1.8.3)

withoutとは

underscorejs.orgのwithout

こんな説明。

_.without(array, *values)

Returns a copy of the array with all instances of the values removed.

_.without([1, 2, 1, 0, 3, 1, 4], 0, 1);
=> [2, 3, 4]


*valuesを除いたarrayのコピーを返す。

underscore.without

コード的にはこのあたり。

 // Return a version of the array that does not contain the specified value(s).
  _.without = function(array) {
    return _.difference(array, slice.call(arguments, 1));
  };

_.differenceを用いて配列の差分を出す。
_.differenceは2つ配列(引数)から、その差分の配列を返す関数。

array以外の引数はargumentsに格納されるので、それをsliceを用いて配列に直し、渡す。

ikasumi_wt
プロダクト開発が好きななんでもやる系エンジニア。フロントエンドが好き。今はスクラムマスター専任。 名古屋 -> 東京 JavaScript loves. よく触っています。 Vue.js/Nuxt.js/Node.js/Express etc. + Python / Django(DRF) 過去:PHP/Laravel/Electron/Vue.js/React.js。
http://ikasumiwt.hatenadiary.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away