第11回。Object編に入りました。
keys
_.keys(object)
keysは、オブジェクト内のすべてのキーを配列にして返します。
_ = require 'underscore' console.log _.keys { hoge: 'hoge' seven: 7 bool: true }実行結果
$ coffee keys.coffee [ 'hoge', 'seven', 'bool' ]
values
_.values(object)
valuesは、オブジェクト内のすべての値を配列にして返します。
_ = require 'underscore' console.log _.values { hoge: 'hoge' seven: 7 bool: true }実行結果
$ coffee values.coffee [ 'hoge', 7, true ]
functions
_.functions(object)
functionsは、object内に存在するすべての関数をソートして配列を返します。
_ = require 'underscore' console.log _.functions _実行結果
$ coffee functions.coffee [ '_', 'after', 'all', 'any', 'bind', 'bindAll', 'chain', 'clone', 'collect', 'compact', 'compose', ...
extend
_.extend(destination, *sources)
extendは、sourcesに指定したオブジェクト内のすべてのプロパティをdestinationに統合します。destinationで既に指定済みのプロパティがあった場合、sourcesのプロパティで上書きされます。
_ = require 'underscore' extended = _.extend { hoge: 'extend hoge' hello: (name)-> 'Hello, ' + name }, { hoge: 'hoge' bool: false seven: 7 hello: ()-> 'Hello' }, { bool: true } console.log 'hoge=' + extended.hoge console.log 'seven=' + extended.seven console.log 'bool=' + extended.bool console.log 'hello=' + extended.hello('Moe!')実行結果
$ coffee extend.coffee hoge=hoge seven=7 bool=true hello=Hello
pick
_.pick(object, *keys)
pickは、オブジェクトの中のうち、キーを指定するとプロパティをコピーしてオブジェクトを返します。
_ = require 'underscore' pickked = _.pick { 'name':'山田 太郎' 'yomi':'やまだ たろう' 'email':'taro@yamada.me' }, 'name', 'email' console.log pickked実行結果
$ coffee pick.coffee { name: '山田 太郎', email: 'taro@yamada.me' }
defaults
_.defaults object, *defualts
defaultsは、オブジェクトのデフォルト値を決める時に使います。
_ = require 'underscore' defaults = { 'hp':20 'mp':5 'items':['やくそう'] 'weapons':['こんぼう'] } hero = _.defaults {'hp':100,'weapons':['銅の剣']}, defaults console.log hero実行結果
$ coffee defaults.coffee { hp: 100, weapons: [ '銅の剣' ], mp: 5, items: [ 'やくそう' ] }
clone
_.clone(object)
cloneは、オブジェクトのシャドウコピーを作成して返します。ネストされたオブジェクトや配列は、参照がコピーされ複製はされません。
_ = require 'underscore' hero = {'name':'moe', 'items':[{'name':'銅の剣', 'count':5}]} clonedHero = _.clone hero console.log clonedHero # クローンのネストされたオブジェクトを変更すると、、、 clonedHero.items[0].name = 'こんぼう' console.log hero実行結果
$ coffee clone.coffee { name: 'moe', items: [ { name: '銅の剣', count: 5 } ] } { name: 'moe', items: [ { name: 'こんぼう', count: 5 } ] }
tap
_.tap(object, interceptor)
tapは、オブジェクトに対して割り込み処理を実行します。このメソッドは、chainメソッドの中ですぐに結果を処理する場合に利用されるのを目的としています。
_ = require 'underscore' results = _.chain [1,2,3,100] .filter (num)-> (num % 2) is 0 .tap(console.log) .map (num)-> num * num .value() console.log results実行結果
$ coffee tap.coffee [ 2, 100 ] [ 4, 10000 ]
関連ページ
- CoffeeScriptで学ぶ Underscore.js 07(Array編)
- CoffeeScriptで学ぶ Underscore.js 06(Array編)
- CoffeeScriptで学ぶ Underscore.js 05(Collection編)
- CoffeeScriptで学ぶ Underscore.js 04(Collection編)
- CoffeeScriptで学ぶ Underscore.js 03 (Collection編)
- CoffeeScriptで学ぶ Underscore.js 02(Collection編)
- CoffeeScriptで学ぶ Underscore.js 01(Collection編)
0 件のコメント:
コメントを投稿