Pot.Hash

{Pot.Hash} new Pot.Hash ([{Object|*} ...args])

Pot.js で利用可能。 PotLite.js では利用できません。

新しい Pot.Hash のインスタンスを生成します。

引数は任意に要素を指定します。
引数を指定する場合、Object または items() 形式の配列が有効です。

Pot.globalize() が適応されている場合、new Pot.Hash() が new Hash() で実行できます。

新しい Pot.Hash のインスタンスが返ります。

var hash = new Pot.Hash();
hash.set('key1', 'value1');
hash.set('key2', [1, 2, 3]);
Pot.debug(hash.toJSON());
// {"key1":"value1","key2":[1,2,3]}

hash.clear();

// Objectでは予想外の動作になるキー名を設定
hash.set('__iterator__',   'iterator');
hash.set('hasOwnProperty', 'hasOwn');
hash.set('prototype',      'proto');
hash.set('constructor',    'construct');
Pot.debug(hash.toJSON());
//   {
//     "__iterator__": "iterator",
//     "hasOwnProperty": "hasOwn",
//     "prototype": "proto",
//     "constructor": "construct"
//   }

// map()とreduce()でイテレート
var result = hash.map(function(value, key, object) {
    return '[' + value + ']';
}).reduce(function(a, b) {
    return a + b;
});
Pot.debug(result);
// '[iterator][hasOwn][proto][construct]'