2017-08-31 74 views
1

我有下面的代碼中,我使用的本地存儲來存儲產品的變體光盤ID的陣列時,用戶點擊每個產品介紹頁面上COMPRE:如何刪除重複的項目出現在範圍變量

「Prdvar」包含產品ID變型的(例如:10,13等)

a.push(JSON.parse(localStorage.getItem('session'))); 
    localStorage.setItem('session', JSON.stringify(a)); 
    $scope.dataVarID = JSON.parse(localStorage.getItem('session')); 

    alert($scope.dataVarID); //Duplicate values present 

    $scope.CompareProduct = function() { 

     a = JSON.parse(localStorage.getItem('session')); 
     a.push("{ ProductVarient :"+Prdvar+"}"); 
     alert(a); 
     localStorage.setItem('session', JSON.stringify(a)); 

    }; 

我的問題是如何去除存在於$ scope.dataVarID重複的項目。

,{ ProductVarient :5},{ ProductVarient :5},{ ProductVarient :5},{ ProductVarient :33} 

//我dontknow在 首先,是增加再12,13,12,12

我只需要,{ ProductVarient :5},{ ProductVarient :33}

回答

0

您可以使用地圖和過濾掉重複的

//$scope.dataVarID = JSON.parse(localStorage.getItem('session')); 
 
function getUniqueArrayObject(array) { 
 
    var result = array.map(function(a) { 
 
     return a.ProductVarient; 
 
    }); 
 
    var unique = []; 
 
    for (var x = 0; x < result.length; x++) { 
 
     if (unique.indexOf(result[x]) == -1) unique.push(result[x]); 
 
    } 
 
    return (unique.map(function(a) { 
 
     return { 
 
      ProductVarient: a 
 
     }; 
 
    })) 
 
} 
 
var newArray = getUniqueArrayObject([{ ProductVarient :5},{ ProductVarient :5},{ ProductVarient :5},{ ProductVarient :33}]) 
 
console.log(newArray) 
 
// $scope.newArray=getUniqueArrayObject($scope.dataVarID);

+0

參數的功能是$ scope.dataVarID? –

+0

$ scope.dataVarID是包含重複值的數組嗎?如果是這樣,是的。 – Vivz

+0

TypeError:[對象數組]不是一個獲取錯誤的函數。 –

0

使用http://underscorejs.org/

包括對您的項目中,該庫是數組操作非常有幫助。

var arrray = [{ ProductVarient :5},{ ProductVarient :5},{ ProductVarient :5},{ ProductVarient :33}] 

var result = _.map(_.groupBy(ar,function(doc){ 
    return doc.ProductVarient; 
}),function(grouped){ 
    return grouped[0]; 
}); 

Result is: [{ ProductVarient :5},{ ProductVarient :33}]