2017-02-28 41 views
0

Iam使用cursor.observechange,以便在添加記錄時通知UI。 RECORDTYPE: {"ref":"100","status":"inprogress"} 我有一個空數組如何添加和刪除基於事件的json數組中的對象(cursor.observeChanges)

var arr=[]; 

當曾經我需要檢查,如果狀態是INPROGRESS和裁判犯規存在於任何對象在ARR [] ..如果是這樣的話,我需要推動該arr中

arr.push(obj); 

如果狀態是否完整,裁判在編曲已經存在[],然後我需要刪除,將arr [] 下面是我試圖

var arr = []; 
function addObject(obj){ 
     if(!arr.some(function(el){return (el.ref === obj.ref)})) 
      { 
       arr.push(obj); 
      } 
     else if{ 
       arr.slice(el); 
       } 

    } 
    var cursor = TransactionDetails.find({ }); 
    cursor.observeChanges({ 
      added: function(id, object) { 
       if (object.status == "incomplete") { 
        addObject(object); 
        Notification.error("added"); 
       } 
        else if(object.status == "complete" { 

        addObject(object); 
        Notification.error("modified"); 

       } 
     } 

     }); 

但是,這是行不通的。我們如何根據這些條件添加和刪除。任何幫助。謝謝!

回答

0

您可以使用一個函數從數組arr中移除一個對象。

它採用Array#findIndex

function removeObject(obj) { 
    var index = arr.findIndex(o => o.ref === obj.ref); 

    if (index !== -1) { 
     arr.splice(index, 1); 
    } 
} 

或用Array#some

function removeObject(obj) { 
    function getIndex(el, i) { 
     if (el.ref === obj.ref) { 
      index = i; 
      return true; 
     } 
    } 

    var index; 

    if (arr.some(getIndex)) { 
     arr.splice(index, 1); 
    } 
} 
的ES5建議
相關問題