Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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
Jquery 用lodash映射JSON对象_Jquery_Django_Lodash - Fatal编程技术网

Jquery 用lodash映射JSON对象

Jquery 用lodash映射JSON对象,jquery,django,lodash,Jquery,Django,Lodash,我正在尝试使用lodash映射JSON对象。我按如下方式调用json对象: var json = (function() { var json = null; $.ajax({ 'async': false, 'global': false, 'url': "{% url 'api_temp_income_statement' asset_details.id %}", 'datatype': "json", 'success': function (da

我正在尝试使用lodash映射JSON对象。我按如下方式调用json对象:

var json = (function() {
var json = null;
$.ajax({
    'async': false,
    'global': false,
    'url': "{% url 'api_temp_income_statement' asset_details.id %}",
    'datatype': "json",
    'success': function (data) {
        json = data;
    }
});
return json;
})

返回如下所示的JSON对象:

[{"model": "tempincomestatement",
  "pk": 3,
  "fields": {"income_period": "2016-01-31", "lease_income_collected": "994174.0000", "storage_income_collected": "236216.0000", "tax_income_collected": "131020.0000", "other_income_collected": "0.0000"}
},... ]
我试图创建一个有收入周期的地图:剩余字段关系,所以

 "2016-01-31" : {"lease_income_collected" : "994174", ... }

阅读文档时,它并没有真正解决如何进行这项工作……我将如何完成这项工作?

您可以使用
Object.keys()
,computed property name,
Array.prototype.reduce()

var数据=[{
“模型”:“临时成本估算表”,
"pk":3,,
“字段”:{
“收入期”:“2016-01-31”,
“已收取的租赁收入”:“994174.0000”,
“存储收入”:“236216.0000”,
“税收收入”:“131020.0000”,
“其他收入”:“0.0000”
}
}];
变量[,…字段]=对象.key(数据[0].字段);
var res={
[数据[0].字段.收入\期间]:字段.减少((对象,属性)=>
(obj[prop]=数据[0]。字段[prop],obj),{})
};
控制台日志(res)您可以使用:

var json=[{“model”:“tempinomestatement”,
"pk":3,,
“字段:{“收入期”:“2016-01-31”,“收集的租赁收入”:“994174.0000”,“收集的存储收入”:“236216.0000”,“收集的税收收入”:“131020.0000”,“收集的其他收入”:“0.0000”}
},{“模型”:“1”,
"pk":3,,
“字段:{“收入期”:“2016-01-31”,“收集的租赁收入”:“994174.0000”,“收集的存储收入”:“236216.0000”,“收集的税收收入”:“131020.0000”,“收集的其他收入”:“0.0000”}
},{“模型”:“1”,
"pk":3,,
“字段:{“租赁收入”已收取“:“994174.0000”,“存储收入”已收取“:“236216.0000”,“税收收入”已收取“:“131020.0000”,“其他收入”已收取“:“0.0000”}
} ];
var result=wk.map(json,函数(obj){
if(obj.fields.income\u期间!==未定义){
var result={};
var eleName=obj.fields.income\u期间;
删除obj.fields.income_期间;
结果[eleName]=对象字段;
返回结果;
}
});
结果=uu0.filter(结果,布尔值);
控制台日志(结果)

使用
..keyBy
按键将数组转换为对象

_.chain(data)
    .map('fields')
    .keyBy('income_period')
    .mapValues(function(val) {
        return _.omit(val, 'income_period');
    })
    .value(); 

我不明白你想得到什么。您是要获取收入期和剩余字段关系列表还是散列?我的目标是创建一个损益表,其中用户选择“2016年3月”,它在一列中显示3月份的数据,并将从今年到3月份的所有值相加,以显示在相邻的列中。如果列表比散列做得更好,那就这样吧。但我只需要一个“日期”:那个时期的收入关系-我没有足够的知识知道什么是理想的对象类型。预期结果是对象还是数组?我不确定你在问什么-结果是什么?@jeffm“我正在尝试创建一个有收入时期的地图:剩余字段关系,所以
“2016-01-31”:{”lease_income_collected:“994174”,…}
“处理原始数组的预期结果是对象本身吗?或者,作为数组元素的对象?我想知道我的问题是如何调用JSON对象。在控制台中,我可以键入json()或tempArr=json();它返回的JSON正好是上面的样子(在var x中),但是我在var eleName行上得到了以下错误:“uncaughtTypeError:cannotreadproperty'income_period'of undefined”我不明白上面的“x”var与“JSON”有何不同 var@jeffm代码片段更新,以便考虑丢失的收入周期…让我知道。