Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
41
Help us understand the problem. What is going on with this article?
@Scheme

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

More than 5 years have passed since last update.

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

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

41
Help us understand the problem. What is going on with this article?
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
Scheme
gauss
株式会社GAUSSは、AIソフトウェアを組み込んだサーバの提供、AIサービス構築のコンサルティング、AIのエンジニア育成をセットにしてサービス提供を展開するスタートアップ企業です。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
41
Help us understand the problem. What is going on with this article?