方法有很多種,本文列舉其中兩種
聲明一個(gè)數(shù)組
var arr = [5,4,3,2,1,5,3];
數(shù)組去重
1:利用ES6中的 Set 方法去重(最常用)
原理:
Set數(shù)據(jù)結(jié)構(gòu)中所有元素都是唯一的,沒(méi)有重復(fù)
Set 本身是一個(gè)構(gòu)造函數(shù),用來(lái)生成 Set 數(shù)據(jù)結(jié)構(gòu)
// new Set(arr) 得到一個(gè)去重的set對(duì)象
// 通過(guò) [] + 展開(kāi)運(yùn)算符 變成數(shù)組格式
console.log([...new Set(arr)]);
2:利用indexOf去重
原理:
indexof() 可返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置。如果沒(méi)有檢索到指定字符串,則返回-1
let newArr = [];
for (let i = 0; i < arr.length; i++) {
// 檢索新數(shù)組中是否有重復(fù)元素,沒(méi)有就push進(jìn)新數(shù)組
if (newArr.indexOf(arr[i]) === -1)
newArr.push(arr[i]);
}
console.log(newArr);
數(shù)組從大到小排序
1:sort方法
概念:
sort() 方法用于對(duì)數(shù)組的元素進(jìn)行排序。
排序順序可以是字母或數(shù)字,并按升序或降序。
默認(rèn)排序順序?yàn)榘醋帜干颉?/p>
注意:當(dāng)數(shù)字是按字母順序排列時(shí)"40"將排在"5"前面。
使用數(shù)字排序,你必須通過(guò)一個(gè)函數(shù)作為參數(shù)來(lái)調(diào)用。
函數(shù)指定數(shù)字是按照升序還是降序排列。
注意: 這種方法會(huì)改變?cè)紨?shù)組!。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-741732.html
// 數(shù)組排序 sort
console.log(arr.sort(sort_s),'這是升序');
console.log(arr.sort(sort_j),'這是降序');
// 升序
function sort_s(a,b){
return a-b;
}
// 降序
function sort_j(a,b){
return b-a;
}
2:冒泡排序
原理:
每次對(duì)相鄰的兩個(gè)元素進(jìn)行比較,若前者大于后者則進(jìn)行交換,
如此一趟下來(lái)最后一趟的就是最大元素,重復(fù)以上的步驟,除了已經(jīng)確定的元素。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-741732.html
for(var i = 0; i < arr.length-1; i++){ //外層循環(huán)管趟數(shù)
for(var j = 0; j < arr.length-i-1; j++){
if(arr[j] < arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
console.log(arr);
到了這里,關(guān)于JavaScript數(shù)組去重,大小排序的兩種方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!