我知道JavaScript中有一些函数式编程,我想知道我是否可以创建一个函数,因此使用一些函数方法比仅仅以编程方式编写代码更容易(如下所示,我也有由于某种原因,一些SO格式问题。)
function mapToFormat(var myarray, var colname) {
}
myarray实际上是来自服务器响应的以下json ...
{
"time": "1",
"col1": "2",
"col2": "3",
"col3": "1"
},
{
"time": "2",
"col2": "3"
},
{
"time": "3",
"col1": "3"
},
{
"time": "4",
"col3": "3"
},
{
"time": "5",
"col1": null
}
我想像上面这样调用上面json的函数
mapToFormat(myarray, 'col1')
然后让它像这样返回数据(虽然是数组格式)
{
"time": "1",
"col1": "2"
},
{
"time": "3",
"col1": "3"
},
{
"time": "5",
"col1": "null
}
我想也许我只是用 var newData = []; $ .each(data,function(index,value){ if(value [colname] not exists){ newData.push({ “时间”:价值['时间'], colname:value [colname] } }); });
但我不知道如何区分“col1”与“col1”之间的区别:null因为我想传递任何通过的空值。
我怎么能做到这一点?我想知道是否有地图功能或我应该使用哪些可能更好?
答案 0 :(得分:1)
试试这个(小提琴:http://jsfiddle.net/GNr8N/1/):
function mapToFormat(myArray, col) {
return myArray.map(function(record){
var result = {
time: record.time,
}
if (typeof record[col] !== 'undefined') {
result[col] = record[col]
}
return result;
})
}
!==运算符不进行类型转换,因此如果记录[col]存在,它将被添加,即使它是null。