Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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_Jquery - Fatal编程技术网

Javascript 创建数组的动态哈希

Javascript 创建数组的动态哈希,javascript,jquery,Javascript,Jquery,我不熟悉javascript和jquery,所以请耐心听我说。我需要用下面的结构创建数组的动态散列 { "cricket_fields": ["aniket", "shivam" ], "soccer_fields": ["tiwari", "sandeep", "abhijeet" ] "football_fields": ["varun", "shikhar","naveen","sudheer","apaar"], } 我的代码的问题是 var fields

我不熟悉javascript和jquery,所以请耐心听我说。我需要用下面的结构创建数组的动态散列

{
    "cricket_fields": ["aniket", "shivam" ],
    "soccer_fields": ["tiwari", "sandeep", "abhijeet" ]
    "football_fields": ["varun", "shikhar","naveen","sudheer","apaar"],

}
我的代码的问题是

  var fields = {};
$.each( $(BUILDER.selected_field_items), function(key,value  ){
       fields[$(this).data('group')] =  [$(this).data('label')]  

    }); 

$(BUILDER.selected_field_items) =
[div.field_items, div.field_items, div.field_items, div.field_items, div.field_items, div.field_items, div.field_items, div.field_items, div.field_items, div.field_items, div.field_items, div.field_items, prevObject: n.fn.init(1), context: document, selector: "#selected_fields_container div.field_items"]
当在这个对象上迭代时,我会找到带有($(this.data('group'))的键和带有$(this.data('label')的值

div.field\u项目=
“Aniket+”
我已经显示了特定div.fields\u项的数据

我不知道
$(BUILDER.selected\u fields\u项)
是什么,但这应该可以实现您的目标:

if (key in fields) {
  // push `value` into the array if the key is found
  fields[key].push(value)
} else {
  // create an array with the first index set to `value` and set it to fields[key]
  fields[key] = [value]
}

你现在面临什么问题?什么是
$(生成器.选定的\u字段\u项目)
?在我们知道您在
$(BUILDER.selected\u field\u items)
中拥有什么以及您当前获得的输出之前,我们无法帮助您您您可以假设我正在获得如上所述的密钥。在输出中,我只得到最后一个键和值。我没有得到上面显示的预期结果try
fields[key][]=arr.push(value)请注意,array.push返回新的长度,而不是元素。所以
fields[key]
将保持
index+1
基本生命-让我试试看
if (key in fields) {
  // push `value` into the array if the key is found
  fields[key].push(value)
} else {
  // create an array with the first index set to `value` and set it to fields[key]
  fields[key] = [value]
}