[英]Associative array with alphabets as keys in JavaScript
I am looking to create a JavaScript object (associative array) with alphabets as keys.我希望创建一个以字母为键的 JavaScript 对象(关联数组)。 What is the best way to accomplish this?
实现这一目标的最佳方法是什么?
Example -例子 -
obj[a] = 'somevalue'
obj[b] = 'somevalue'
...
obj[z]= 'some value'
Assigning alphabets as keys dynamically.动态分配字母作为键。
Here's a quick and lazy way to create the object:这是创建对象的一种快速而懒惰的方法:
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';
or:要么:
var obj = [ ];
obj['A'] = 'letter A';
obj['B'] = 'letter B';
obj['C'] = 'letter C';
and then:接着:
alert(obj.B);
or the equivalent:或等价物:
alert(obj['B']);
I would use the { }
syntax for non-integer based indexes though.不过,我会对基于非整数的索引使用
{ }
语法。 Why?为什么? Because there are some real gotchas when you use
[ ]
with non-integer indexes, like this one:因为当您将
[ ]
与非整数索引一起使用时会遇到一些真正的问题,例如:
var obj = [ ];
obj['A'] = 'letter A';
obj['B'] = 'letter B';
obj['C'] = 'letter C';
alert(obj.length);
Guess what will be printed?猜猜会打印什么? Yes, you guessed it: 0.
是的,你猜对了:0。
var hash = {};
hash["abcdefghijklmnopqrstuvwxyz"] = "something";
hash["בגדהוזחטיךכלםמןנסעףפץצקרשת"] = "something else";
hash["АБВГДЕЖЅZЗИІКЛМНОПРСТȢѸФХѾЦЧШЩЪꙐЬѢꙖѤЮѦѪѨѬѠѺѮѰѲѴ"] = "something else";
First create an array of letters using the trick Thack Mai used :首先使用Thack Mai使用的技巧创建一个字母数组:
var associateArray = []
for (i = 65; i <= 90; i++) {
associateArray[i-65] = String.fromCharCode(i).toLowerCase()
}
Then map values to any of the letters you want to map values to然后将值映射到您要将值映射到的任何字母
associateArray['a'] = 1
associateArray['b'] = 2
This creates the type of object used in browsers for CSSStyleDeclaration.这将创建浏览器中用于 CSSStyleDeclaration 的对象类型。 It can be iterated over like so
它可以像这样迭代
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');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.