2016-10-05 5 views
0
  1. Hiに追加する前に、重複をチェックするために、私は2つの同じ値が既にリスト内をしているとき、重複チェックすることができますどのようなコードを、得ました。どのようにしての前に重複してをチェックして、リストに2番目の同じ値を追加することができますか? 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}); 
    
          } 
    
  2. それは重複を設立する場合、それは私がリストにない重複している、新しい値を、追加を続行させてはいけません。重複が見つかった場合でも、リストに新しい値を追加し続けるにはどうすればよいですか?

Thxを事前に=)

答えて

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}); 
      } 
     }); 

ご希望の場合はお手数ですが、

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']; 
関連する問題