【JS】【保存版】underscore.js の使用方法 まとめ Object Functions
2013.11.24
この記事は最終更新日から1年以上が経過しています。
underscore.js
引き続き、underscore.js の Object Functionsのまとめとなります。
keys
_.keys(object)
オブジェクトのプロパティのすべての名前を取得します。
_.keys({one: 1, two: 2, three: 3}); => ["one", "two", "three"]
values
_.values(object)
オブジェクトのプロパティのすべての値を返します。
_.values({one: 1, two: 2, three: 3}); => [1, 2, 3]
pairs
_.pairs(object)
オブジェクトを[key、value] ペアのリストに変換します。
_.pairs({one: 1, two: 2, three: 3}); => [["one", 1], ["two", 2], ["three", 3]]
invert
_.invert(object)
キーが値になったオブジェクトのコピーとキーの値を返します。
これを行うには、オブジェクトの値はすべて一意で、文字列をシリアル化できる必要があります。
_.invert({Moe: "Moses", Larry: "Louis", Curly: "Jerome"}); => {Moses: "Moe", Louis: "Larry", Jerome: "Curly"};
functions
_.functions(object)
Alias: methods
オブジェクト内のすべてのメソッドの名前のソートされたリスト、つまりオブジェクトのすべての関数プロパティの名前を返します。
_.functions(_); => ["all", "any", "bind", "bindAll", "clone", "compact", "compose" ...
extend
_.extend(destination, *sources)
ソースオブジェクト内のすべてのプロパティを宛先オブジェクトにコピーし、宛先オブジェクトを返します。
それは順序通りであり、最後のソースは前の引数の同じ名前のプロパティを上書きします。
_.extend({name: 'moe'}, {age: 50}); => {name: 'moe', age: 50}
pick
_.pick(object, *keys)
ホワイトリストに登録されたキー(または有効なキーの配列)の値のみを持つようにフィルタリングされた、オブジェクトのコピーを返します。
_.pick({name: 'moe', age: 50, userid: 'moe1'}, 'name', 'age'); => {name: 'moe', age: 50}
omit
_.omit(object, *keys)
ブラックリストのキー(またはキーの配列)を省略するようにフィルタリングされたオブジェクトのコピーを返します。
_.omit({name: 'moe', age: 50, userid: 'moe1'}, 'userid'); => {name: 'moe', age: 50}
defaults
_.defaults(object, *defaults)
defaultsオブジェクトの値でオブジェクトの未定義プロパティを埋め込み、オブジェクトを返します。
プロパティが満たされるとすぐに、それ以上のデフォルトは効果を持ちません。
var iceCream = {flavor: "chocolate"}; _.defaults(iceCream, {flavor: "vanilla", sprinkles: "lots"}); => {flavor: "chocolate", sprinkles: "lots"}
clone
_.clone(object)
オブジェクトの浅いコピークローンを作成します。
ネストされたオブジェクトまたは配列は、複製されずに参照によってコピーされます。
_.clone({name: 'moe'}); => {name: 'moe'};
tap
_.tap(object, interceptor)
オブジェクトでインターセプタを呼び出し、オブジェクトを返します。
このメソッドの主な目的は、チェーン内の中間結果に対して操作を実行するために、メソッドチェーンを「タップイン」することです。
_.chain([1,2,3,200]) .filter(function(num) { return num % 2 == 0; }) .tap(alert) .map(function(num) { return num * num }) .value(); => // [2, 200] (alerted) => [4, 40000]
has
_.has(object, key)
オブジェクトには指定されたキーが含まれているか否かを判定。
object.hasOwnProperty(key)と同じですが、誤ってオーバーライドされている場合に備えて、hasOwnProperty関数への安全な参照を使用します。
_.has({a: 1, b: 2, c: 3}, "b"); => true
isEqual
_.isEqual(object, other)
2つのオブジェクトを最適化して詳細に比較し、等しいかどうかを判断します。
var moe = {name: 'moe', luckyNumbers: [13, 27, 34]}; var clone = {name: 'moe', luckyNumbers: [13, 27, 34]}; moe == clone; => false _.isEqual(moe, clone); => true
isEmpty
_.isEmpty(object)
オブジェクトに値が含まれていない場合はtrueを返します(列挙可能な独自のプロパティはありません)。
_.isEmpty([1, 2, 3]); => false _.isEmpty({}); => true
isElement
_.isElement(object)
オブジェクトが、DOM要素の場合はtrueを返します。
_.isElement(jQuery('body')[0]); => true
isArray
_.isArray(object)
オブジェクトがArrayの場合はtrueを返します。
(function(){ return _.isArray(arguments); })(); => false _.isArray([1,2,3]); => true
isObject
_.isObject(value)
値がObjectの場合はtrueを返します。
JavaScript配列と関数はオブジェクトであり、(通常の)文字列と数値はオブジェクトではありません。
_.isObject({}); => true _.isObject(1); => false
isArguments
_.isArguments(object)
objectがArgumentsオブジェクトの場合はtrueを返します。
(function(){ return _.isArguments(arguments); })(1, 2, 3); => true _.isArguments([1,2,3]); => false
isFunction
_.isFunction(object)
objectがFunctionの場合はtrueを返します。
_.isFunction(alert); => true
isString
_.isString(object)
objectがStringの場合はtrueを返します。
_.isString("moe"); => true
isNumber
_.isNumber(object)
objectがNumberの場合はtrueを返します。
_.isNumber(8.4 * 5); => true
isFinite
_.isFinite(object)
objectが有限数の場合はtrueを返します。
_.isFinite(-101); => true _.isFinite(-Infinity); => false
isBoolean
_.isBoolean(object)
objectがtrueまたはfalseの場合はtrueを返します。
_.isBoolean(null); => false
isDate
_.isDate(object)
objectがDateの場合はtrueを返します。
_.isDate(new Date()); => true
isRegExp
_.isRegExp(object)
objectがRegExpの場合はtrueを返します。
_.isRegExp(/moe/); => true
isNaN
_.isNaN(object)
objectがNaNの場合はtrueを返します。
注:これは、ネイティブのisNaN関数と同じではありません。これは、undefinedなどの他の多くの数値ではない値に対してもtrueを返します。
_.isNaN(NaN); => true isNaN(undefined); => true _.isNaN(undefined); => false
isNull
_.isNull(object)
オブジェクトの値がnullの場合は、trueを返します。
_.isNull(null); => true _.isNull(undefined); => false
isUndefined
_.isUndefined(value)
値が未定義の場合は、trueを返します。
_.isUndefined(window.missingVariable); => true