我有以下代码,当用户在每个产品描述页面上点击compre时,我使用本地存储来存储Product varient ID数组。:
“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}
//我不知道 首先,加上12,13,12,12
我只需要,{ ProductVarient :5},{ ProductVarient :33}
答案 0 :(得分:0)
与棱角无关,
我建议您使用lodash
uniq
函数来执行此操作:
https://lodash.com/docs/4.17.4#uniq
答案 1 :(得分: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);
答案 2 :(得分:0)
包含在您的项目中,此库对数组操作非常有用。
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];
});
结果是:[{ProductVarient:5},{ProductVarient:33}]