以上兩種去重的不一樣就是 上面那個是用j去和i比,而下面那個使用i和j比,這倆的區別在哪
剛學習不到一周js 被這個繞蒙了
uj5u.com熱心網友回復:
沒有區別,就是一個變數而已uj5u.com熱心網友回復:
變數i是從0開始的變數j是從1開始
arr.splice(i,1)
arr.splice(j,1) 洗掉陣列的起始位置不一樣
uj5u.com熱心網友回復:
splice方法兩個引數,第一個表示陣列索引位置,第二個引數表示個數;splice(0,1);就是從索引為0的位置開始,洗掉1個元素;
uj5u.com熱心網友回復:
最少兩個引數uj5u.com熱心網友回復:
用es7的寫法吧,比你這個好理解多var sz=[1,2,3,4,2,2,5];
var newsz=[...new Set(sz)];
newsz就是去重后的結果
uj5u.com熱心網友回復:
搜一下 js filteruj5u.com熱心網友回復:
這里在回圈陣列又再洗掉陣列的項,會出現跳項的情況,第一個比如你i=0,發現j=7陣列相等,這時你洗掉陣列的第0項的值,陣列第0項沒有了,第1項變為0項后面的資料也跟著前進一項,i--就是為了不跳過,如果不i--就會檢測陣列的1項就是資料3,跳過了資料2第二個洗掉的類似
所以一般不要在遍歷陣列的時候splice洗掉陣列的值
uj5u.com熱心網友回復:
let newArr = Array.from(new Set(arr))console.log(newArr)
uj5u.com熱心網友回復:
const str = `sajlfjdiosajflewagnagl;dhfoajhoidjsalf;ewjhqoifdjksaljfoidhqagoieq`;let str2 = str.split('')
let str3 = new Set(str2)
let str4 = [...str3]
let str5 = str4.join().split(',').join('')
console.log(str5)
這是我個人寫的去重方法,另外可以看看Set和Map集合的使用
https://blog.csdn.net/JAN_LIGHT/article/details/107617796
uj5u.com熱心網友回復:
陣列去重用set不香嗎?uj5u.com熱心網友回復:
你這個有點復雜,看看這個<script>
var arr = [1, 3, 1, 2, 3, 5, 2, 3, 4, 6];
// 去除重復的
var arr1 = []
for(var i = 0; i<arr.length; i++){
if(arr1.indexOf(arr[i]) == -1){
arr1.push(arr[i])
}
}
console.log(arr1);
</script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/20246.html
標籤:JavaScript
