JavaScript假词典
我已经声明了Javascript数组,这样我就可以通过一个键访问它们,但那是很久以前的事了,我已经忘记了我是如何做到的 基本上,我有两个要存储的字段,一个唯一的键和它的值。我知道有办法做到这一点。。比如:JavaScript假词典,javascript,arrays,dictionary,associative-array,Javascript,Arrays,Dictionary,Associative Array,我已经声明了Javascript数组,这样我就可以通过一个键访问它们,但那是很久以前的事了,我已经忘记了我是如何做到的 基本上,我有两个要存储的字段,一个唯一的键和它的值。我知道有办法做到这一点。。比如: var jsArray = new {key: 'test test', value: 'value value'}, new {key: 'test 2', value: 'value 2'}; 访问方式如下: value = jsArray[key] 有人能
var jsArray = new {key: 'test test', value: 'value value'},
new {key: 'test 2', value: 'value 2'};
访问方式如下:
value = jsArray[key]
有人能提醒我吗?你可以用不同的方式:
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;
您可以通过不同的方式来实现:
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;
如果您已经在使用Prototype,请尝试使用其哈希。如果使用jQuery,请尝试使用Map。如果您已经在使用Prototype,请尝试使用其哈希。如果使用jQuery,请尝试使用Map。这里有一个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();
下面是一个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();
JS中的所有对象数组或其他对象都可以被索引-从技术上讲,任何索引操作,a[b]都与a相同虽然显然对于数组等,没有JS引擎会这样做:DAll对象数组或JS中的其他对象可以被索引——从技术上讲,任何索引操作,a[b]都与a相同虽然显然对于数组等没有JS引擎会这样做:值得注意的是a['b']和a.b是相同的,事实上a[0]和a.0是相同的,但只有JS语法阻止你这样做:染料,内部是以相同的方式访问的,这是你的选择使用:值得注意的是a['b']和a.b是一样的,事实上a[0]和a.0是一样的,只是JS语法阻止了你这么做:染料,内部是以同样的方式访问的,这是你的选择女巫口味使用:这似乎有点笨手笨脚。有什么特别的原因需要这些函数来完成所有这些事情吗?aaaidan,你会遗漏什么?@rp我会删除所有东西,你没有在那里定义一个操作,除了长度之外,没有为内置对象定义。这似乎有点笨手笨脚。有什么特别的原因需要这些函数来完成所有这些事情吗?aaaidan你会忽略什么?@rp我会删除所有东西,你没有在那里定义一个除了长度之外没有为内置对象定义的操作