我已经以这样的方式声明了Javascript数组,然后我可以通过键访问它们,但是很久以前,我已经忘记了我是如何做到的。
基本上,我有两个要存储的字段,一个唯一的键及其值。我知道有办法做到这一点......比如:
var jsArray = new {key: 'test test', value: 'value value'},
new {key: 'test 2', value: 'value 2'};
并访问:
value = jsArray[key]
有人能提醒我吗?
答案 0 :(得分:7)
你可以用不同的方式做到这一点:
var a = {'a':0, 'b':1, 'c':2};
var b = new Array();
b['a'] = 0;
b['b'] = 1;
b['c'] = 2;
var c = new Object();
c.a = 0;
c.b = 1;
c.c = 2;
答案 1 :(得分:2)
var myFancyDictionary = {
key: 'value',
anotherKey: 'anotherValue',
youGet: 'the idea'
}
答案 2 :(得分:2)
如果您已经在使用Prototype,请尝试使用其Hash。如果使用jQuery,请尝试使用Map。
答案 3 :(得分:-2)
这是一个提供简单字典的JavaScript类。
if( typeof( rp ) == "undefined" ) rp = {};
rp.clientState = new function()
{
this.items = new Object();
this.length = 0;
this.set = function( key, value )
{
if ( ! this.keyExists( key ) )
{
this.length++;
}
this.items[ key ] = value;
}
this.get = function( key )
{
if ( this.keyExists( key ) )
{
return this.items[ key ];
}
}
this.keyExists = function( key )
{
return typeof( this.items[ key ] ) != "undefined";
}
this.remove = function( key )
{
if ( this.keyExists( key ) )
{
delete this.items[ key ];
this.length--;
return true;
}
return false;
}
this.removeAll = function()
{
this.items = null;
this.items = new Object();
this.length = 0;
}
}
使用示例:
// Add a value pair.
rp.clientState.set( key, value );
// Fetch a value.
var x = rp.clientState.Get( key );
// Check to see if a key exists.
if ( rp.clientState.keyExists( key )
{
// Do something.
}
// Remove a key.
rp.clientState.remove( key );
// Remove all keys.
rp.clientState.removeAll();