我有一个$。post jQuery调用,调用php文件。然后,该文件返回一个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"}]
执行.map()
的数组需要是一个jquery对象。如果你设置的结果数据等于一个jquery数组与$
贴在它应该能够使用jquery地图实用程序。您也可以使用$.map(array, function(item){});
,
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/.map()
的签名为:
jQuery。Map (array, callback)
那么,你可以试试:
var data = [{"set":"Alpha","key":"256"},
{"set":"Omega","key":"671"},
{"set":"Theta","key":"762"},
{"set":"Beta","key":"462"}];
$.map(data, function(elem){
elem.set = newValue;
elem.key = newValue;
});
小提琴来了