我有这样的JSON对象:
"data": [
{
"from": "2017-01-06",
"to": "2017-01-07"
},
{
"from": "2017-01-28",
"to": "2017-02-05"
}
]
我希望在屏幕上显示它。但首先,我需要将数据拆分为:
from: 2017-xx-xx, to: 0000-00-00,
from: 2017-xx-xx, to: 0000-00-00
每次替换都有效,但我仍然遇到每秒逗号的问题。
我已经编码如下:
controllers.filter('newFilter', function () {
return function (item) {
var json = JSON.stringify(item);
if (json) {
json = json.replace(/"/g, "");
json = json.replace(/{|}/gi, "");
json = json.split(',').join("\n");
json = json.substring(1, json.length - 1);
return json;
}
};
});
我得到了:
from: 2017-xx-xx,
to: 0000-00-00,
from: 2017-xx-xx,
to: 0000-00-00
如何使用split和join更改行来执行此操作?
关于html显示的@edit - 这个值在数据标题中作为工具提示:
<tr class="pointer" ng-repeat="plan in plans">
<td class="nowrap">{{plan.person}}</td>
<td class="yearView" ng-repeat="month in plan.data"
bs-tooltip data-title="{{month.dataTest| newFilter}}"
data-container="body">
这只是一个非常奇怪的例子,因为在1月份我只有一个数据来自 - 但可能在4月我将从 - 到达4-5个数据。我的英语可能还很难。
我想创建一个过滤器,因为我放弃了其余的想法。
@ edit2 - &gt;好吧,我粘贴了我的数据,但它只是JSON的一个片段。
我在数据库中的每个人的全部json:
{
"person": "John Smith",
"Id": 50,
"data": [
{
"month": 1,
"maxDay": 31,
"dataTest": [
{
"from": "2017-01-06",
"to": "2017-01-07"
},
{
"from": "2017-01-28",
"to": "2017-02-05"
}
]
},
答案 0 :(得分:2)
我希望在屏幕上显示它。但首先,我需要拆分数据 形成:
无需stringify
item
,使用map
和join
直接遍历对象的密钥
var output = item.map( s => "from:" + s.from + ", to: " + s.to ).join( "\n" );
如果要在屏幕上显示,请将它们包裹在div
的
var output = item.map( s => "<div>from:" + s.from + ", to: " + s.to + "</div>" )
.join( "<br>" );
或作为列表项
var output = "<ul>" +
item.map( s => "<li>from:" + s.from + ", to: " + s.to + "</li>" ).join( "" ) +
"</ul>";