2017-09-19 15 views
0

を使用してdulpcate値を与える私は値を追加する前に、アレイ内の重複する値をチェックするために、次を使用しています欲しいです。しかし、私は今もEnglishValueを追加する必要がありますので、私はに変更されました:AngularJs項目に新しいプロパティを追加するには.indexOf

vm.onGridItemChanged = function (resource, englishText) { 

     var modifiedItem = {Resource: resource, EnglishValue: englishText}; 

     if (vm.modifiedItems.indexOf(modifiedItem) === -1) { 
      vm.modifiedItems.push(modifiedItem); 
     } 

    }; 

しかしこれは、機能を破壊し、私は今、重複する値を取得していますか?なぜこれが当てはまるのでしょうか?あなたは文字列にJSONオブジェクトを変換し、そのインデックスをチェックする必要が

[ 
    { 
    "Resource": { 
     "ResourceId": "Account_AccountVerified_Success_Title", 
     "LocaleId": "de", 
     "ResourceSet": "/WebResources", 
     "Value": "Erfolg55", 
     "Comment": "Success", 
     "Editing": false, 
     "$$hashKey": "object:3861" 
    }, 
    "EnglishValue": "Success", 
    "$$hashKey": "object:40483" 
    }, 
    { 
    "Resource": { 
     "ResourceId": "Account_AccountVerified_Success_Title", 
     "LocaleId": "de", 
     "ResourceSet": "/WebResources", 
     "Value": "Erfolg55", 
     "Comment": "Success", 
     "Editing": false, 
     "$$hashKey": "object:3861" 
    }, 
    "EnglishValue": "Success", 
    "$$hashKey": "object:40488" 
    } 
] 

答えて

1

: -

編集私josnはまだ重複の問題を引き起こしている$$hashKey値を含んでいます。 、あなたがオブジェクトで$$hashkeyを持っているので、あなたは最初にすることによりangular.toJson

vm.onGridItemChanged = function (resource, englishText) { 

     var modifiedItem = {Resource: resource, EnglishValue: englishText}; 
     var modifiedItems = angular.toJson(vm.modifiedItems); 
     if (JSON.stringify(modifiedItems).indexOf(JSON.stringify(modifiedItem)) === -1) { 
      vm.modifiedItems.push(modifiedItem); 
     } 

    }; 

var a = [{'d':'dasdasd','e':'dasdasda'}, {'d':'dasdasd','e':'dada'}]; 
 
var b = {'d':'dasdasd','e':'dasdasda'}; 
 

 
var index = JSON.stringify(a).indexOf(JSON.stringify(b)); 
 

 
console.log(index);

たちは、文字列内に存在するJSONオブジェクトのインデックスを取得することを参照してくださいすることを削除する必要があります。同様に、JSON配列に存在しない場合、インデックスは-1になります。

+0

こんにちは、ご迷惑をかけないでください。私のデータ - 更新された質問をご覧ください。 –

+0

私は '$$ hashkey'を参照しています。更新された答えを確認してください –

+0

私は 'if(angular.toJson(vm.modifiedItems).indexOf(angular.toJson(modifiedItem))=== -1)'を使って作業しています:) –

関連する問題