全局圖是我試圖從對象數組中刪除重複項。具有相同advertId和leadboxId的對象是相當重複的,但出於測試目的,我只檢查advertIds嘗試排序對象數組,但拼接不是一個函數?
我從sessionStorage中獲取此數組並刪除重複項。
var testSort = function() {
var events = [];
events = sessionStorage.events;
console.log("events unsorted");
console.log(events);
for (var i = 0; i < events.length; i++) {
for (var x = i + 1; x < events.length; x++) {
if (events[x].advertId == events[i].advertId) {
events.splice(x, 1);
--x;
}
}
// add
}
控制檯打印出事件數組作爲這樣的:
[{"module":"slick_module","eventType":"swipe","leadboxId":"1565","advertId":"5653","length":"length of event","time":1462783354789,"posted":"postedStatus"},{"module":"slick_module","eventType":"swipe","leadboxId":"1565","advertId":"56527","length":"length of event","time":1462783357590,"posted":"postedStatus"}]
這是不是一個很好的陣列? 當試圖拼接這個我得到的錯誤,events.splice不是一個函數。
任何幫助是aprecciated。
呃...你有沒有檢查'events'是否爲空? –
這是我登錄上面的同一個事件,在拼接之前它似乎仍然被填滿。 – JSB
在for循環中拼接時,必須注意所有變換索引。你最好使用'Array.prototype.filter()'。 – Redu