Core
Native
Class
Element
Utilities
Fx
Request
Plugins
- Fx.Slide
- Fx.Scroll
- Fx.Elements
- Drag
- Drag.Move
- Color
- Group
- Hash.Cookie
- Sortables
- Tips
- SmoothScroll
- Slider
- Scroller
- Assets
- Accordion
新たに実装されたカスタムオブジェクト({})であり、作成、取得、反復処理時にprototypeを参照しません。 JavaScriptではObject.prototypeを使えませんが、Hash.prototypeを使えるというのは、とても便利なことなのです!
var myHash = new Hash([object]);
var myHash = new Hash({ aProperty: true, aMethod: function(){ return true; } }); alert(myHash.has('aMethod')); //戻り値: true.
オブジェクト内にあるキー=値のベアに対して関数を呼び出します。
myHash.each(fn[, bind]);
fn(value, key, hash)
var hash = new Hash({first: "Sunday", second: "Monday", third: "Tuesday"}); hash.each(function(value, key){ alert("the " + key + " day of the week is " + value); }); //"the first day of the week is Sunday", "the second day of the week is Monday", という具合にアラート。
連想配列内の特定のキーが存在するかテストします。
var inHash = myHash.has(item);
var hash = new Hash({'a': 'one', 'b': 'two', 'c': 'three'}); hash.has('a'); //戻り値 true hash.has('d'); //戻り値 false
任意の値を持つキーを返します。Array:indexOfと同じです。
var key = myHash.keyOf(item);
var hash = new Hash({'a': 'one', 'b': 'two', 'c': 3}); hash.keyOf('two'); //戻り値 'b' hash.keyOf(3); //戻り値 'c' hash.keyOf('four') //戻り値 false
連想配列内に特定の値が存在するかをテストします。
var inHash = myHash.hasValue(value);
var hash = new Hash({'a': 'one', 'b': 'two', 'c': 'three'}); hash.hasValue('one'); //戻り値 true hash.hasValue('four'); //戻り値 false
渡されたオブジェクトのキー=値ペアを使って連想配列を拡張します。
myHash.extend(properties);
var hash = new Hash({ 'name': 'John', 'lastName': 'Doe' }); var properties = { 'age': '20', 'sex': 'male', 'lastName': 'Dorian' }; hash.extend(properties); //連想配列が今持っているオブジェクト: { 'name': 'John', 'lastName': 'Dorian', 'age': '20', 'sex': 'male' };
渡されたオブジェクトのキー=値を連想配列に結合します。重複は許可せず(古い要素は新しい要素によって上書きされません)、大文字小文字・データ型を区別します。
myHash.combine(properties);
var hash = new Hash({ 'name': 'John', 'lastName': 'Doe' }); var properties = { 'name': 'Jane' 'age': '20', 'sex': 'male', 'lastName': 'Dorian' }; hash.combine(properties); //連想配列が今持っているオブジェクト: { 'name': 'John', 'lastName': 'Doe', 'age': '20', 'sex': 'male' };
特定のキーを連想配列から取り除きます。
myHash.erase(key);
var hash = new Hash({ 'name': 'John', 'lastName': 'Doe' }); hash.erase('lastName'); //連想配列が今持っているオブジェクト: { 'name': 'John' };
連想配列内から値を取得します。
myHash.get(key);
var hash = new Hash({ 'name': 'John', 'lastName': 'Doe' }); hash.get('name'); //戻り値 'John'
連想配列にキー=値を追加し、同じキーがあった場合は値を上書きします。
myHash.set(key, value);
var hash = new Hash({ 'name': 'John', 'lastName': 'Doe' }); hash.set('name', 'Michelle'); //hash.nameは現在'Michelle'です。
連想配列を空にします。
myHash.empty();
var hash = new Hash({ 'name': 'John', 'lastName': 'Doe' }); hash.empty(); //hashは空のオブジェクトになりました: {}
まだキーが存在しない場合、連想配列に特定のキー=値のペアを追加します。
myHash.include(key, value);
var hash = new Hash({ 'name': 'John', 'lastName': 'Doe' }); hash.include('name', 'Michelle'); //hashは変わりません。 hash.include('age', 25); //hash.ageは25になりました。
連想配列の各キーに対して関数を実行した結果を新しい連想配列にマップします。
var mappedHash = myHash.map(fn[, bind]);
fn(value, key, hash)
var timesTwo = new Hash({a: 1, b: 2, c: 3}).map(function(value, key){ return value * 2; }); //timesTwoが現在持っているオブジェクト: {a: 2, b: 4, c: 6};
連想配列に対してフィルタリング関数を実行し、trueを返した要素のみからなる連想配列を作成します。
var filteredHash = myHash.filter(fn[, bind]);
fn(value, key, hash)
var biggerThanTwenty = new Hash({a: 10, b: 20, c: 30}).filter(function(value, key){ return value > 20; }); //biggerThanTwentyの現在のオブジェクト: {c: 30}
連想配列のオブジェクトがテスト関数の条件をすべて満たす場合、trueを返します。
var allPassed = myHash.every(fn[, bind]);
fn(value, key, hash)
var areAllBigEnough = ({a: 10, b: 4, c: 25, d: 100}).every(function(value, key){ return value > 20; }); //areAllBigEnough = false
連想配列内の要素が一つでもテスト関数の条件を満たすならばtrue。
var anyPassed = myHash.any(fn[, bind]);
fn(value, key, hash)
var areAnyBigEnough = ({a: 10, b: 4, c: 25, d: 100}).some(function(value, key){ return value > 20; }); //isAnyBigEnough = true
連想配列を空っぽのオブジェクトにして返します。
myHash.getClean();
var hash = new Hash({ 'name': 'John', 'lastName': 'Doe' }); hash = hash.getClean(); // hashはもはやHashプロパティを持ちません。 hash.each() //エラー!
Hash:getValuesで返されるのと同じ順番で、連想配列の持つキーからなる配列を返します。
var keys = myHash.getKeys();
Hash:getKeysで返されるのと同じ順番で、連想配列のすべての値からなる配列を返します。
var values = myHash.getValues();
連想配列内のキーの数を返します。
var length = myHash.getLength();
var hash = new Hash({ 'name': 'John', 'lastName': 'Doe' }); hash.getLength(); // 戻り値 2
オブジェクトのキー=値からクエリ文字列を生成し、URIエンコードします。
var queryString = myHash.toQueryString();
Hash.toQueryString({apple: "red", lemon: "yellow"}); //戻り値 "apple=red&lemon=yellow"
var myHash = new Hash({apple: "red", lemon: "yellow"}); myHash.toQueryString(); //戻り値 "apple=red&lemon=yellow"
new Hashのショートカットです。
このドキュメントはMooToolsのドキュメントを元に高橋文樹が翻訳(ちょっと改変)しました。
本家と同じく、Attribution-NonCommercial-ShareAlike 3.0ライセンスで公表されています。