Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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 JS或jQuery方法将json排列到多维数组中_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript JS或jQuery方法将json排列到多维数组中

Javascript JS或jQuery方法将json排列到多维数组中,javascript,jquery,arrays,Javascript,Jquery,Arrays,我正在为前端处理服务器的响应而苦苦挣扎,该服务器会在本季发布活动评论。同一事件可以有多个审阅者,简化版的response如下所示: [{"id":"3","reviewer_id":"4","event_id":"3","review":"a"}, {"id":"19","reviewer_id":"3","event_id":"4","review":"b"}, {"id":"20","reviewer_id":"1","event_id":"4","review":"b"}] var ev

我正在为前端处理服务器的响应而苦苦挣扎,该服务器会在本季发布活动评论。同一事件可以有多个审阅者,简化版的
response
如下所示:

[{"id":"3","reviewer_id":"4","event_id":"3","review":"a"},
{"id":"19","reviewer_id":"3","event_id":"4","review":"b"},
{"id":"20","reviewer_id":"1","event_id":"4","review":"b"}]
var events = new Array();//define the recipient array
$.each(response, function(index, row) {
    if (!(jQuery.isArray(events[Number(row.event_id)]))) {//if a variable by this index is not array then...
        var events [Number(row.event_id)] = new Array();// ...declare it as array, I get error thrown here: "Uncaught SyntaxError: Unexpected token ["
    } 
    events[Number(row.event_id)].push(row);//push current row into appropriate recipient array member
});
我想使用事件创建和数组,其中数组索引将由
事件\u id
定义,因此我执行以下操作:

[{"id":"3","reviewer_id":"4","event_id":"3","review":"a"},
{"id":"19","reviewer_id":"3","event_id":"4","review":"b"},
{"id":"20","reviewer_id":"1","event_id":"4","review":"b"}]
var events = new Array();//define the recipient array
$.each(response, function(index, row) {
    if (!(jQuery.isArray(events[Number(row.event_id)]))) {//if a variable by this index is not array then...
        var events [Number(row.event_id)] = new Array();// ...declare it as array, I get error thrown here: "Uncaught SyntaxError: Unexpected token ["
    } 
    events[Number(row.event_id)].push(row);//push current row into appropriate recipient array member
});
正如代码中指出的,我抛出了一个错误

未捕获的SyntaxError:意外标记[在第4行中]


如果您有任何帮助,我们将不胜感激。

您在这行有语法错误:

var events [Number(row.event_id)] = new Array();
您需要将此更改为:

events[Number(row.event_id)] = new Array();
在对象中添加属性或在数组中添加元素不需要
var
声明。这是一个语法错误。下面是代码的工作示例:

var响应=[{
“id”:“3”,
“审阅者id”:“4”,
“事件id”:“3”,
“审查”:“a”
},
{
“id”:“19”,
“审阅者id”:“3”,
“事件id”:“4”,
“审查”:“b”
},
{
“id”:“20”,
“审阅者id”:“1”,
“事件id”:“4”,
“审查”:“b”
}
];
var events=新数组();
$.each(响应、函数(索引、行){
if(!(jQuery.isArray(事件[Number(row.event\u id)])){
事件[Number(row.event_id)]=新数组();
}
事件[编号(行.事件id)]。推送(行);
});
console.log(事件);

https://stackoverflow.com/questions/49666110/js-or-jquery-approach-to-arrange-json-into-multidimensional-array/49666247#
这一行有语法错误:

var events [Number(row.event_id)] = new Array();
您需要将此更改为:

events[Number(row.event_id)] = new Array();
在对象中添加属性或在数组中添加元素不需要
var
声明。这是一个语法错误。下面是代码的工作示例:

var响应=[{
“id”:“3”,
“审阅者id”:“4”,
“事件id”:“3”,
“审查”:“a”
},
{
“id”:“19”,
“审阅者id”:“3”,
“事件id”:“4”,
“审查”:“b”
},
{
“id”:“20”,
“审阅者id”:“1”,
“事件id”:“4”,
“审查”:“b”
}
];
var events=新数组();
$.each(响应、函数(索引、行){
if(!(jQuery.isArray(事件[Number(row.event\u id)])){
事件[Number(row.event_id)]=新数组();
}
事件[编号(行.事件id)]。推送(行);
});
console.log(事件);

https://stackoverflow.com/questions/49666110/js-or-jquery-approach-to-arrange-json-into-multidimensional-array/49666247#
问题似乎出在这一行

var events [Number(row.event_id)] = new Array();
它似乎试图声明一个名为
events
(已在上面声明)的变量,同时将一个新数组分配给特定索引

删除
var
,应该可以解决语法错误

events [Number(row.event_id)] = new Array();

问题似乎出在这条线上

var events [Number(row.event_id)] = new Array();
它似乎试图声明一个名为
events
(已在上面声明)的变量,同时将一个新数组分配给特定索引

删除
var
,应该可以解决语法错误

events [Number(row.event_id)] = new Array();

因为你在它前面放了一个
var

var events [Number(row.event_id)] = ...
删除
var
,错误就会消失

events [Number(row.event_id)] = ...
原因是关键字
var
用于定义新变量,在定义新变量时,不能为该变量创建属性(例如
Number(row.event\u id)

此外,
事件
已在前面定义。您不应再次定义
事件
,以使功能正常工作

var response=[{“id”:“3”,“审阅者id”:“4”,“事件id”:“3”,“审阅”:“a”},
{“id”:“19”,“审阅者id”:“3”,“事件id”:“4”,“审阅”:“b”},
{“id”:“20”,“审阅者id”:“1”,“事件id”:“4”,“审阅”:“b”}];
var events=new Array();//定义收件人数组
$.each(响应、函数(索引、行){
如果(!(jQuery.isArray(events[Number(row.event_id)]){//如果此索引的变量不是数组,则。。。
events[Number(row.event_id)]=new Array();/…将其声明为Array,在此处抛出错误:“Uncaught SyntaxError:意外标记[”
} 
事件[编号(row.event_id)]。推送(row);//将当前行推送到相应的收件人数组成员中
});
console.log(事件);

因为你在它前面放了一个
var

var events [Number(row.event_id)] = ...
删除
var
,错误就会消失

events [Number(row.event_id)] = ...
原因是关键字
var
用于定义新变量,在定义新变量时,不能为该变量创建属性(例如
Number(row.event\u id)

此外,
事件
已在前面定义。您不应再次定义
事件
,以使功能正常工作

var response=[{“id”:“3”,“审阅者id”:“4”,“事件id”:“3”,“审阅”:“a”},
{“id”:“19”,“审阅者id”:“3”,“事件id”:“4”,“审阅”:“b”},
{“id”:“20”,“审阅者id”:“1”,“事件id”:“4”,“审阅”:“b”}];
var events=new Array();//定义收件人数组
$.each(响应、函数(索引、行){
如果(!(jQuery.isArray(events[Number(row.event_id)]){//如果此索引的变量不是数组,则。。。
events[Number(row.event_id)]=new Array();/…将其声明为Array,在此处抛出错误:“Uncaught SyntaxError:意外标记[”
} 
事件[编号(row.event_id)]。推送(row);//将当前行推送到相应的收件人数组成员中
});
console.log(事件);

谢谢,您是否碰巧知道为什么我得到数组的第一个元素是空的?因此
事件
看起来像
[empty×3,array(1),array(2),…]
带有
控制台.log()
因为
事件[Number(row.event\u id)]。推送(row)
。最小的
事件id
3
,但是作为一个数组,
events
应该在索引
0,1,2
中有值,但是这些值丢失了。所以
有空的x3
只要使用
var events={}
就可以解决问题,但它不是数组