ProgramingTip

배열에서 날짜 요소 삭제

bestdevel 2020. 12. 13. 10:22
반응형

배열에서 날짜 요소 삭제


이 질문에 이미 답변이 있습니다.

예를 들어 다음과 같은 배열이 있습니다.

var arr = [1, 2, 2, 3, 4, 5, 5, 5, 6, 7, 7, 8, 9, 10, 10]

내 목적은 배열에서 반복되는 요소를 버리고 이와 같은 배열을 얻는 것입니다.

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

JavaScript에서 어떻게해야 작업을 수행 할 수 있습니까?

참고 : 배열은 배열되지 않았는데 값은 임의의 순서 일 수 있습니다.


다음을 사용하는 것이 더 많은 것 입니다.Array.filter

var unique = arr.filter(function(elem, index, self) {
    return index === self.indexOf(elem);
})

요소가 아직 준비되어 있으므로지도를 만들 필요가 있지만 빠른 솔루션이 있습니다.

var newarr = [arr[0]];
for (var i=1; i<arr.length; i++) {
   if (arr[i]!=arr[i-1]) newarr.push(arr[i]);
}

배열이없는 경우지도를 사용합니다.

var newarr = (function(arr){
  var m = {}, newarr = []
  for (var i=0; i<arr.length; i++) {
    var v = arr[i];
    if (!m[v]) {
      newarr.push(v);
      m[v]=true;
    }
  }
  return newarr;
})(arr);

이것은 허용되는보다 훨씬 빠입니다.


var arr = [1,2,2,3,4,5,5,5,6,7,7,8,9,10,10];

function squash(arr){
    var tmp = [];
    for(var i = 0; i < arr.length; i++){
        if(tmp.indexOf(arr[i]) == -1){
        tmp.push(arr[i]);
        }
    }
    return tmp;
}

console.log(squash(arr));

작업 예 http://jsfiddle.net/7Utn7/

이전 브라우저에서 indexOf와의 대화


jquery를 사용하여 이렇게 시도 할 수 있습니다.

 var arr = [1,2,2,3,4,5,5,5,6,7,7,8,9,10,10];
    var uniqueVals = [];
    $.each(arr, function(i, el){
        if($.inArray(el, uniqueVals) === -1) uniqueVals.push(el);
    });

배열에서 중복 제거 (단순)에서 다음을 시도하십시오 .

Array.prototype.removeDuplicates = function (){
  var temp=new Array();
  this.sort();
  for(i=0;i<this.length;i++){
    if(this[i]==this[i+1]) {continue}
    temp[temp.length]=this[i];
  }
  return temp;
} 

편집하다:

이 코드는 정렬이 필요하지 않습니다.

Array.prototype.removeDuplicates = function (){
  var temp=new Array();
  label:for(i=0;i<this.length;i++){
        for(var j=0; j<temp.length;j++ ){//check duplicates
            if(temp[j]==this[i])//skip if already present 
               continue label;      
        }
        temp[temp.length] = this[i];
  }
  return temp;
 } 

( 그러나 테스트 된 코드는 아닙니다! )

참고 URL : https://stackoverflow.com/questions/16747798/delete-duplicate-elements-from-an-array

반응형