2017-12-17 1 views
-3

이 배열에서 이름이 다시 나타납니다. 두 번 반환되는 중복 된 이름 (예 : "Kenny")이 있으며 새 배열로 한 번만 밀어 넣기를 원합니다. 나는 그 과정에서 다소 길을 잃었다. 지금까지 내가 한 일이 여기있다. 고유 한 값을 포함중복 된 값이 없으면 항목을 새 배열로 밀어 넣습니다.

var newArr = []; 
var found; 

$.ajax({ 
url: 'https://spreadsheets.google.com/feeds/list//od6/public/values?alt=json', 
success: function(data) 
{ 
    var entryPoint = data.feed.entry; 
    // data.feed.entry entry to arrays 

    for (i = 0; i < entryPoint.length; i++) 
    { 
     var fName = entryPoint[i].gsx$firstname.$t; 
     var lName = entryPoint[i].gsx$lastname.$t; 
     var email = entryPoint[i].gsx$email.$t; 
     var total = entryPoint[i].gsx$totalordered.$t; 

     found = false; 

     // Check the array for the name 
     for(var i=0; i < newArr.length; i++) 
     { 
      if(newArr[i] == fName) 
      { 
       found = true; 
       break; 
      } 
     } 

     // If name not found, add it 
     if(!found) newArr.push(fName) 
    } 
} 
}); 
+0

가능한 경우 [Array.push()가 존재하지 않습니다?] (https://stackoverflow.com/questions/1988349/array-push-if-does-not-exist) – arpl

답변

1

사용이 발견되지 않는 경우는

var newArr = []; 



$.ajax({ 
    url: 'https://spreadsheets.google.com/feeds/list//od6/public/values?alt=json', 
    success: function(data){ 
     var entryPoint = data.feed.entry; 
     // data.feed.entry entry to arrays 
     for (i = 0; i < entryPoint.length; i++){ 
      var fName = entryPoint[i].gsx$firstname.$t; 
      var lName = entryPoint[i].gsx$lastname.$t; 
      var email = entryPoint[i].gsx$email.$t; 
      var total = entryPoint[i].gsx$totalordered.$t; 


      newArr.push(fName) 

     } 

    } 


}) 
+0

감사합니다. 팁, 나는 '사실'을 위해 편집했다. – Ivan86

3

newArr.indexOf (값) -1 반환 정렬. 당신은 생성자에게 배열을 전달하여 Set에 이름을 넣을 수 있습니다 :

var newSet = new Set(entryPoint.map(entry => entry.gsx$firstname.$t)); 

건너 뜁니다 이미 세트에 추가 된 모든 이름을. 그런 다음 더 편안 있다면, 설정에 따라 배열을 생성하는 데 사용 newSet.values()를 사용하여 저장된 이름과 함께 작업 할 Iterator를 얻을, 또는 수 있습니다

var newArr = [...newSet.values()]; 
// or var newArr = Array.from(newSet.values()); if you can't use destructuring 

그렇게 말되는 모든, Set ISN ' Internet Explorer에서 사용할 수 없습니다. 하지만 다른 것들 중에서 특히 polyfill.io으로 polyfill 할 수 있습니다.

0

newArr 만약 필요, 그것은 Set 아닌되어야한다 :

관련 문제