이 예에서는 자바스크립트를 사용하여 배열의 중복 요소를 삭제하는 데 일반적으로 사용되는 몇 가지 기술을 요약합니다. 필요한 친구는 이를 참조할 수 있습니다.
여기에서는 주로 다음을 사용하여 배열에서 중복 요소를 삭제하는 방법을 구현하는 자주 발생하는 프런트 엔드 인터뷰 질문을 공유합니다. 자바스크립트. 초보자들에게 도움이 되었으면 좋겠습니다
//数组去重的方法 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) : ''; } //返回过滤后的数组没有影响原数组 return newArr; } var arr=['a','a','b','a','c','d']; 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 = ['qiang','ming','tao','li','liang','you','qiang','tao']; 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 = ['qiang','ming','tao','li','liang','you','qiang','tao']; 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]) == 'undefined'){ a[v] = 1; } }; data.length=0; for (var i in a){ data[data.length] = i; } return data; }방법은 거의 동일합니다. 세 번째 방법이 더 좋습니다.
위 내용은 중복 요소를 삭제하기 위한 여러 JavaScript 방법에 대한 권장 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!