1
我的應用程序是使用Pubnub,我檢索的聊天記錄與下面的代碼:比較數組用foreach項目
$scope.populateMessages = function() {
// Populate message history using jsapi (optional)
PubNub.jsapi.history({
channel: $scope.channel,
count: 15,
callback: function(payload) {
payload[0].forEach(function(message) {
$scope.messages.push(message);
//message timetoken
console.log(message.pn_apns.aps.timetoken);
});
$scope.messagesStatus = false;
$scope.connectionStatus = false;
$scope.$apply();
}
});
};
當我的應用程序從我要再次檢查新郵件的背景的。 但是,當我運行上面的代碼時,我得到重複。如果我在運行上面的代碼之前清除了$ scope.messages,它只會在加載時有效。
所以笏目前,我想要做的是通過檢索現有消息的時間標記檢查郵件的當前列表:
var div = $('.list');
var divs = $('.item .chatMessage');
var divArray = [];
for (var i = 0; i < divs.length; i += 1) {
divArray.push(divs.attr('timetoken'));
}
//list of existing messages timetokens
console.log(divArray);
而且我想他們與檢索到的新的消息進行比較上面的populateMessages函數。如果timetoken已經存在什麼也不做,如果timetoken不存在添加消息的消息($ scope.messages.push(消息);)
http://stackoverflow.com/questions/9229645/remove-duplicates-from-javascript-array –