アルファベットをキーとして JavaScript オブジェクト (連想配列) を作成しようとしています。これを達成するための最良の方法は何ですか?
例 -
obj[a] = 'somevalue'
obj[b] = 'somevalue'
...
obj[z]= 'some value'
アルファベットをキーとして動的に割り当てる。
アルファベットをキーとして JavaScript オブジェクト (連想配列) を作成しようとしています。これを達成するための最良の方法は何ですか?
例 -
obj[a] = 'somevalue'
obj[b] = 'somevalue'
...
obj[z]= 'some value'
アルファベットをキーとして動的に割り当てる。
オブジェクトを作成するための迅速で怠惰な方法を次に示します。
var a = 97;
var charArray = {};
for (var i = 0; i<26; i++)
charArray[String.fromCharCode(a + i)] = String.fromCharCode(a + i);
console.log(charArray);
var obj = { };
obj['A'] = 'letter A';
obj['B'] = 'letter B';
obj['C'] = 'letter C';
また:
var obj = [ ];
obj['A'] = 'letter A';
obj['B'] = 'letter B';
obj['C'] = 'letter C';
その後:
alert(obj.B);
または同等のもの:
alert(obj['B']);
{ }
ただし、非整数ベースのインデックスには構文を使用します。なんで?[ ]
次のように、整数以外のインデックスを使用する場合、いくつかの実際の落とし穴があるためです。
var obj = [ ];
obj['A'] = 'letter A';
obj['B'] = 'letter B';
obj['C'] = 'letter C';
alert(obj.length);
何が印刷されると思いますか?はい、あなたはそれを推測しました: 0.
var hash = {};
hash["abcdefghijklmnopqrstuvwxyz"] = "something";
hash["בגדהוזחטיךכלםמןנסעףפץצקרשת"] = "something else";
hash["АБВГДЕЖЅZЗИІКЛМНОПРСТȢѸФХѾЦЧШЩЪꙐЬѢꙖѤЮѦѪѨѬѠѺѮѰѲѴ"] = "something else";
最初に、 Thack Mai が使用したトリックを使用して、文字の配列を作成します。
var associateArray = []
for (i = 65; i <= 90; i++) {
associateArray[i-65] = String.fromCharCode(i).toLowerCase()
}
次に、値をマップしたい任意の文字に値をマップします
associateArray['a'] = 1
associateArray['b'] = 2
これにより、ブラウザーで CSSStyleDeclaration に使用されるオブジェクトの型が作成されます。そのように繰り返すことができます
for (var i = 0; i < associateArray.length; i++) {
console.log(associateArray[associateArray[i]])
}
function range( start, limit ){
var assoc_array = {};
var step = 1;
var DEFAULT_VALUE = "some value";
step *= limit.charCodeAt(0) - start.charCodeAt(0) > 0 ? 1:-1;
while( start !== limit ){
assoc_array[ start ] = DEFAULT_VALUE;
start = String.fromCharCode(start.charCodeAt(0)+step);
}
assoc_array[ limit ] = DEFAULT_VALUE;
return assoc_array;
}
//Usage examples
var alphabet_array = range('a','z');
var reverse_alphabet_array = range('z','a');