LoginSignup
40

More than 5 years have passed since last update.

Underscore.jsのオブジェクト操作いろいろ

Last updated at Posted at 2014-12-26

Underscoreを使う際のTips的な(オブジェクト編)

記述テンプレ

_.○○○○(object);

_.keys(object)

キーを配列に抽出する

_.keys({A: 1, B: 2, C: 3}); => ["A", "B", "C"]

_.values(object)

値を配列に抽出する

_.values({A: 1, B: 2, C: 3}); => [1, 2, 3]

_.pairs(object)

キーと値のペア配列に変換する

_.pairs({A: 1, B: 2, C: 3})
=> [["A", 1], ["B", 2], ["C", 3]]

_.invert(object)

キーを値に、値をキーに反転する

_.invert({A: "aaa", B: "bbb", C: "ccc"});
=> {aaa: "A", bbb: "B", ccc: "C"};

_.functions(object)

名前順にオブジェクト名を返す。

_.functions(_);
=> ["all", "any", "bind", "bindAll", "clone", "compact", "compose" ...

_.extend(destination, *sources)

オブジェクトを結合する。

_.extend({name: 'A'}, {age: 20});
=> {name: 'A', age: 20

_.pick(object, *keys)

オブジェクトから引数の条件に該当する部分のみを抽出する。

_.pick({name: 'A', age: 10, userid: 'a01'}, 'name', 'age');
=> {name: 'A', age: 10}
_.pick({name: 'A', age: 10, userid: 'a01'}, function(value, key, object) {
  return _.isNumber(value);
});
=> {age: 10}

_.omit(object, *keys)

オブジェクトから引数の条件に該当する部分を除外する。

_.omit({name: 'A', age: 10, userid: 'a01'}, 'name', 'age');
=> {userid: 'a01'}
_.omit({name: 'A', age: 10, userid: 'a01'}, function(value, key, object) {
  return _.isNumber(value);
});
=> {name: 'A', userid: 'a01'}

_.defaults(object, *defaults)

オブジェクトのキーについて、引数に渡されたオブジェクトの同一キーを上書きする。

var name = {name: "bbb"};
_.defaults(name, {name: "aaa", age: 20});
=> {name: "bbb", age: 20}

_.clone(object)

オブジェクトのコピー

_.clone({name: 'aaa'});
=> {name: 'aaa'};

_.has(object, key)

オブジェクトに指定のキーが存在しているかどうかを返す。

_.has({A: 1, B: 2, C: 3}, "B"); => true

_.property(key)

プロパティで指定したキーの値について一致しているかどうかを返す。

var name = {name: 'A'};
'A' === _.property('name')(name);
=> true

_.isEqual(object, other)

オブジェクト同士が一致するかどうかを返す

var A = {name: 'A', luckyNumbers: [1, 2, 3]};
var copyA = {name: 'A', luckyNumbers: [1, 2, 3]};
_.isEqual(A, copyA);
=> true

_.isEmpty(object)

オブジェクトが空なら真、そうでなければ偽を返す。

_.isEmpty({name: "A", age: 20}); => false
_.isEmpty({}); => true

_.is○○○○(object)

_.isElement, _.isArray, _.isObject, _.isArguments, _.isFunction, _.isString, _.isNumber, _.isFinite, _.isBoolean, _.isDate, _.isRegExp, _.isNaN, _.isNull, _.isUndefined

存在確認、真偽値を返す。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40