我有一个调用php文件的$ .post jQuery调用。然后该文件返回JSON编码的数组。然后,映射数组以编辑数组中的一些数据。但是,我收到错误arr.map is not function
。
这是在$ .post调用中传递的数组。
[{"set":"Alpha","key":"256"},
{"set":"Omega","key":"671"},
{"set":"Theta","key":"762"},
{"set":"Beta","key":"462"}]
这是地图功能。
idHash = {'Alpha': '1', 'Beta': '2', 'Theta': '3', 'Omega': '4'};
var arr = arr.map(function(item){
item.set = idHash[item.set]
return item;
})
在map函数之后,数组应该如下所示。
[{"set":"1","key":"256"},
{"set":"4","key":"671"},
{"set":"3","key":"762"},
{"set":"2","key":"462"}]
答案 0 :(得分:8)
您正在执行的数组.map()
需要是一个jquery对象。如果将结果数据设置为等于附加$
的jquery数组,则应该能够使用jquery map实用程序。您也可以使用$.map(array, function(item){});
,
https://jsfiddle.net/62v2a0cw/1/
idHash = {'Alpha': '1', 'Beta': '2', 'Theta': '3', 'Omega': '4'};
var arr = $.map(idHash, function(item){
item.set = idHash[item.set];
console.log(item);
return item;
});
请参阅jsFiddle链接。如果有帮助,请告诉我。这只是为了协助.map()
。如果要创建JSON对象数组,可以使用jQuery .each()
并将每个键值对相应地推送到数组。您可以根据需要使用每次迭代的值来操作。根据您的评论,假设您使用的idHash
标识的JSON等于{'Alpha': '1', 'Beta': '2', 'Theta': '3', 'Omega': '4'}
arr = [];
idHash = {'Alpha': '1', 'Beta': '2', 'Theta': '3', 'Omega': '4'};
$.each(idHash, function(key, value){
// do whatever with the value before setting
value *= 15;
arr.push({"set": key, "key": value });
});
console.log(arr);
https://jsfiddle.net/62v2a0cw/2/
如果有效,请告诉我。
答案 1 :(得分:0)