Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript创建哈希表样式集合_Javascript_Json_Collections_Hashtable_Add - Fatal编程技术网

使用Javascript创建哈希表样式集合

使用Javascript创建哈希表样式集合,javascript,json,collections,hashtable,add,Javascript,Json,Collections,Hashtable,Add,在JavaScript中,我希望通过以下方式创建一个集合- 从一个空集合开始,使用var c=[] 然后我想在其中添加项目;添加后,它将看起来像 { 'buttonSubmit': function() { /* do some work */ } }, { 'buttonCancel': function() { /* do some work */ } } 我必须使用循环逐个添加项,并且记录不是json字符串。我知道push方法,但问题是它创建了我不想使用的索引数组,因为我想使用c['bu

在JavaScript中,我希望通过以下方式创建一个集合-

从一个空集合开始,使用
var c=[]

然后我想在其中添加项目;添加后,它将看起来像

{ 'buttonSubmit': function() { /* do some work */ } },
{ 'buttonCancel': function() { /* do some work */ } }
我必须使用循环逐个添加项,并且记录不是json字符串。我知道push方法,但问题是它创建了我不想使用的索引数组,因为我想使用
c['buttonSubmit']
d.buttonSubmit
从集合中检索值。我希望避免循环并比较密钥名


请帮我举一些简单的代码示例。

因为您以数组的形式启动了
c
,它使用数字索引来引用其中的内容。您想要的是将
c
作为一个对象,它使用键引用其中的数据

var c = {};
c.buttonSubmit = function(){...};
c.buttonCancel = function(){...};

//similarly
var c = {
  buttonSubmit : function(){...},
  buttonCancel : function(){...}
}

//using them via dot notation
c.buttonSubmit();
c.buttonCancel();

//using them via bracket notation
c.['buttonSubmit']();
c.['buttonCancel']();

谢谢让我试试你的解决方案。我把你的答案和这个代码结合起来,完成了我的要求,非常感谢。变量数据={'PropertyA':1,'PropertyB':2,'PropertyC':3};数据[“PropertyD”]=4;//带有4个it警报的对话框(data.PropertyD);警报(数据[“PropertyD”]);