嗨,我得到了代码,当列表中的两个相同值 ALREADY 时,可以检查重复内容。如何在之前检查重复的,将第二个相同的值添加到列表中。 PS。我正在处理字符串值。
var vals = $scope.todoDatat.map(function(item){ return item.time });
var isDuplicate = vals.some(function (item, idx) {
return vals.indexOf(item) !== idx;
});
if (isDuplicate) {
$scope.errortext = 'time is a duplicate';
} else{
$scope.todoDatat.push({date: day, time: time, value: 15, arvo: arvosi});
}
当它发现重复时,它不允许我继续添加新值,即不重复到列表中。即使找到重复内容,如何继续向列表中添加新值?
事先判断=)
答案 0 :(得分:0)
为什么不使用普通对象并检查JavaScript的hasOwnProperty是否存在密钥?
var x = {};
x['key'] = 'val';
x.hasOwnProperty('key'); // true //
x.hasOwnProperty('key2'); // false //
这是一个更高级的用例:
var x = {};
var prefix = 'item_';
for(var i=0;i<10;i++){
x[prefix+i] = 'value '+(i+1);
}
x.hasOwnProperty('item_6'); // true //
x.hasOwnProperty('other key'); // false //
删除项目可以这样做:
delete x['key'];
答案 1 :(得分:0)
听起来你正在寻找这样的解决方案:
$scope.todoItems = ['13:00', '14:00', '15:00'];
$scope.todoDatat = ['14:00', '22:00'];
angular.forEach($scope.todoItems, function (item) {
if ($scope.todoDatat.map(function (x) {return x;}).indexOf(item) >= 0) {
console.log('Duplicate!');
// $scope.errortext = 'time is a duplicate';
} else {
console.log('Not Duplicate');
// $scope.todoDatat.push({date: day, time: time, value: 15, arvo: arvosi});
}
});
希望它会对你有所帮助。