如何删除范围变量中存在的重复项
How to remove duplicate items present in scope variable
我有以下代码,当用户在每个产品描述页面上点击压缩时,我使用本地存储来存储产品变体 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}
与angular、
无关
我建议你使用 lodash
uniq
函数来做到这一点:
https://lodash.com/docs/4.17.4#uniq
您可以使用地图并过滤掉重复项
//$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);
加入你的项目,这个库对数组操作很有帮助。
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}]
我有以下代码,当用户在每个产品描述页面上点击压缩时,我使用本地存储来存储产品变体 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}
与angular、
无关我建议你使用 lodash
uniq
函数来做到这一点:
https://lodash.com/docs/4.17.4#uniq
您可以使用地图并过滤掉重复项
//$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);
加入你的项目,这个库对数组操作很有帮助。
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}]