>  기사  >  웹 프론트엔드  >  중복 요소를 삭제하기 위한 여러 JavaScript 방법에 대한 권장 요약

중복 요소를 삭제하기 위한 여러 JavaScript 방법에 대한 권장 요약

伊谢尔伦
伊谢尔伦원래의
2017-07-24 09:52:471715검색

이 예에서는 자바스크립트를 사용하여 배열의 중복 요소를 삭제하는 데 일반적으로 사용되는 몇 가지 기술을 요약합니다. 필요한 친구는 이를 참조할 수 있습니다.

여기에서는 주로 다음을 사용하여 배열에서 중복 요소를 삭제하는 방법을 구현하는 자주 발생하는 프런트 엔드 인터뷰 질문을 공유합니다. 자바스크립트. 초보자들에게 도움이 되었으면 좋겠습니다


//数组去重的方法
Array.prototype.unique=function(){
  //集中声明变量
  var 
   oldArr=this,
   newArr=[oldArr[0]],
   len=oldArr.length,
   i=1;
  //过滤空数组
  if(!len) return this;
  //过滤重复元素
  for(;i<len;i++){
    newArr.indexOf(oldArr[i])<0 ? newArr.push(_this) : &#39;&#39;; 
  }
  //返回过滤后的数组没有影响原数组
  return newArr;
}
var arr=[&#39;a&#39;,&#39;a&#39;,&#39;b&#39;,&#39;a&#39;,&#39;c&#39;,&#39;d&#39;];
console.log(arr.unique());
//["a", "b", "c", "d", unique: function]

인터넷에 많고 제가 쓴 글도 별로 좋지는 않지만 결국 제가 쓴 논리는 명확하고 논리를 따라 확장될 수 있습니다. 중복을 제거하기 위해 객체 요소로 확장하거나 동시에 여러 배열을 작동할 수 있습니다. 다음은 포괄적인 비교를 위해 다른 사람들이 작성한 몇 가지 방법입니다.

방법 1:


function oSort(arr)
{
  var result ={};
  var newArr=[];
  for(var i=0;i
  {
 if(!result[arr[i]])
 {
   newArr.push(arr[i])
   result[arr[i]]=1
 }
  }
  return newArr
}

방법 2:

배열 탐색 arr을 삭제하고, 요소를 별도로 넣어야 합니다. 다른 배열 tmp에서는 해당 요소가 arr에 존재하지 않는다고 판단한 후에만 tmp에 넣는 것이 허용됩니다. for...in과 indexOf()
두 가지 함수가 사용됩니다.


var student = [&#39;qiang&#39;,&#39;ming&#39;,&#39;tao&#39;,&#39;li&#39;,&#39;liang&#39;,&#39;you&#39;,&#39;qiang&#39;,&#39;tao&#39;];
 function unique(arr){
   // 遍历arr,把元素分别放入tmp数组(不存在才放)
   var tmp = new Array();
   for(var i in arr){
  //该元素在tmp内部不存在才允许追加
  if(tmp.indexOf(arr[i])==-1){
  }
 }
  return tmp;
}

방법 3:

배열 arr의 요소 값과 키 위치를 교환하면 자동으로 중복 요소가 삭제됩니다. array('qiang'=>1, 'ming' =>1, 'tao'=> 1)


<script type="text/javascript">
  var student = [&#39;qiang&#39;,&#39;ming&#39;,&#39;tao&#39;,&#39;li&#39;,&#39;liang&#39;,&#39;you&#39;,&#39;qiang&#39;,&#39;tao&#39;];
  function unique(arr){
    var tmp = new Array();
    for(var m in arr){
      tmp[arr[m]]=1;
    }
    //再把键和值的位置再次调换
    var tmparr = new Array();
    for(var n in tmp){
     tmparr.push(n);
    }
   return tmparr;
 }
</script>

방법 4


/**
* 去除数组重复元素
*/
function uniqueArray(data){ 
  data = data || []; 
  var a = {}; 
  for (var i=0; i<data.length; i++) { 
    var v = data[i]; 
    if (typeof(a[v]) == &#39;undefined&#39;){ 
      a[v] = 1; 
    } 
  }; 
  data.length=0; 
  for (var i in a){ 
    data[data.length] = i; 
  } 
  return data; 
}

방법은 거의 동일합니다. 세 번째 방법이 더 좋습니다.

위 내용은 중복 요소를 삭제하기 위한 여러 JavaScript 방법에 대한 권장 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.