이 기사의 예에서는 JavaScript를 사용하여 배열에서 중복 요소를 삭제하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
여기에서는 주로 자바스크립트를 구현하여 배열의 중복 요소를 삭제하는 프론트엔드 인터뷰 질문을 자주 묻는 질문을 공유합니다. 초보자에게 도움이 되길 바랍니다
//数组去重的方法 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에 넣을 수 있습니다.
두 가지 함수가 사용됩니다: ...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 프로그래밍 설계에 도움이 되기를 바랍니다.