您好,登錄后才能下訂單哦!
今天小編給大家分享一下javascript數組去重的方法的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
第1個功能:數組去重。
實現方案1:
思路:對待去重的數組arr進行for循環遍歷,然后在新的數組newArr中去查找當前被遍歷的元素arr[i],如果返回值為-1,說明在新的數組中還沒有出現過當前被遍歷的元素arr[i],則把該元素放到新的數組中。當數組arr遍歷完以后,新數組newArr就是去重以后的數組。
var arr = [1, 4, 7, 4, 3, 2, 1, 4, 7];
var newArr = [];
for(var i = 0; i < arr.length; i++) {
if(newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i]);
}
}
console.log(newArr);
實現方案2:
思路:該方案和方案1思路相同,只不過是使用reduce方法進行遍歷。
var arr = [1, 4, 7, 4, 3, 2, 1, 4, 7];
var newArr = arr.reduce((newArr, current) => {
if(newArr.indexOf(current) === -1) {
newArr.push(current);
}
return newArr;
}, []);
console.log(newArr);
實現方案3:
思路:當前方案使用了ES6新增的set數據解構的去重特性,然后在將生成的set對象轉換成數組。
var arr = [1, 4, 7, 4, 3, 2, 1, 4, 7];
var newArr = Array.from(new Set(arr));
console.log(newArr);
第2個功能:在數組中找出最小值(或者最大值)。
實現方案1:
思路:假設第一個數組元素是最小值,然后對數組后面的元素進行遍歷、判斷,如果當前被遍歷的元素小于iMin變量的值,說明iMin變量的值還不是最小值,則將當前遍歷的元素值替換掉iMin變量的值。當循環結束,iMin變量的值就是數組中最小的值。
var arr = [23, 45, 40, 30, 12];
var iMin = arr.shift();
arr.forEach((v) => {
iMin = v < iMin ? v : iMin;
});
console.log(iMin);
實現方案2:
思路:利用Math.min()方法求最小值,但是該方法的參數是一個數值列表,而不是一個數組,故使用ES6新增的擴展運算符將數組轉換成列表,然后傳遞到Math.min()方法中去即可。
var arr = [23, 45, 40, 30, 12];
var iMin = Math.min(...arr);
console.log(iMin);
第3個功能:交換兩個變量的值。
實現方案1:
思路:將變量a的值給到臨時變量temp,然后再將變量b的值給變量a,最后再將臨時變量temp的值給變量b,至此完成變量a和變量b交換值的功能。
var a = 4, b = 6;
var temp = a;
a = b;
b = temp;
console.log(a , b);
實現方案2:
思路:利用ES6的數組解構方法,實現在不使用第三個變量的情況下,完成變量a和變量b的數據交換。
var a = 4, b = 6;
[a, b] = [b, a];
console.log(a, b);
以上就是“javascript數組去重的方法”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。