我有一个每天有一个对象的对象数组(最多30个)。每天都有会议细节,我想每天展示。因此,如何遍历数组以按顺序每天选择和显示一条消息?
对象数组如下:
{
"meetings": [{
"date": "07/06/2016",
"startTime": "15.00",
"finishTime": "16.00",
"subject": "local community"
}, {
"date": "08/06/2016",
"startTime": "12.00",
"finishTime": "12.30",
"subject": "environment"
}, {
"date": "09/06/2016",
"startTime": "12.00",
"finishTime": "13.00",
"subject": "local community"
}]
}
由于
答案 0 :(得分:0)
如果我正确理解了这个问题。您希望每天只有一条消息,即使数组中有多个消息也是如此。最简单的方法是将其转换为地图。
如果您想显示给定日期的最后一条消息,请执行此操作
var data = { "meetings" : [...]};
var messages = {};
for(var message of data.meetings) {
messages[message.date] = message;
}
如果要显示给定日期的第一条消息,则只需添加if语句
var data = { "meetings" : [...]};
var messages = {};
for(var message of data.meetings) {
if(!messages[message.date]) {
messages[message.date] = message;
}
}
<强>更新强> 如果要保留消息,可以使用数组映射
var data = { "meetings" : [...]};
var messages = {};
for(var message of data.meetings) {
if(!messages[message.date]) {
messages[message.date] = [];
}
messages[message.date].push(message);
}
然后您可以使用以下代码找到特定日期的第7条消息(按照数组中的外观顺序)
var message = messages["01/01/2012"][6];
答案 1 :(得分:0)
app.js(您的JSON文件名为meetings.json)
var app = angular.module('Meetings', []);
app.factory('meetings', ['$http', function($http) {
return $http.get('meetings.json')
.success(function(data) {
return data;
})
.error(function(data) {
console.log("error");
return data;
});
}]);
app.controller('HomeController', ['$scope', 'meetings', function($scope, meetings) {
meetings.success(function(data){
$scope.meeting = data;
});
}]);
的index.html
<div ng-repeat="day in meeting.meetings">
<p>{{day.date}}</p>
<p>{{day.startTime}}</p>
<p>{{day.finishTime}}</p>
<p>{{day.subject}}</p>
</div>
我希望这就是你要求的。