我正在处理一组看起来像这样的对象:
recordlist.push(
{
date: '',
time: '',
comment: '',
arrival: '',
}
我正在过滤它并将其显示在前端,如下所示:
ng-repeat="record in filteredRecords = (recordlist | filter:dateFilter | filter: search )"
此 filteredRecords 是我在ngCSV中用来创建文件的变量:
<button ng-csv="filteredRecords"></button>
我正在使用ngCSV,它的工作就像一个魅力。但后来我更改了结构并开始使用嵌套数组,将对象转换为:
recordlist.push(
{
date: '',
time: '',
comments: [
{message: '',
commenttime: ''},
{message: '',
commenttime: ''},
{message: '',
commenttime: ''}
],
arrival: '',
}
由于ngCSV无法处理嵌套对象,我想在将数据添加到CSV文件之前必须先操作数据。
我的想法是将comments数组转换为字符串,在导出时将其写入CSV,然后在导入时再将其转换为数组。
类似的东西:
comments: 'message: test, commenttime:test / message: test2, commenttime: test2 / ...'
我怎么能接近这个?
答案 0 :(得分:0)
如果我理解你的问题,你想重新格式化一个对象数组中的对象数组,这样二级数组中的每个单独对象现在都是它自己的键:原始对象中的值。
你可以用.map
来做到这一点类似的东西:
$scope.MappedData = $scope.data.map(function (obj) {
var reformattedObj = {};
for (var i = 0; i < obj.comments.length; i++) {
reformattedObj['comment' + [i]] = obj.comments[i];
}
reformattedObj['date'] = obj.date;
reformattedObj['time'] = obj.time;
reformattedObj['arrival'] = obj.arrival;
return reformattedObj;
});