2017-09-19 2 views
0

를 사용하여 dulpcate 값을 제공합니다AngularJS와는 항목에 새 속성을 추가하면 나는 내가 값을 추가하기 전에 배열에서 중복 된 값을 확인하려면 다음을 사용하고 .indexOf

vm.onGridItemChanged = function (resource) { 

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

이 잘 작동하고 나에게 행동 I를 제공합니다 필요. 그러나 나는 이제 EnglishValue를 추가 할 필요가있다, 그래서 나는로 변경되었습니다

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)'및 working : –