在實際業務中,往往會碰到排序的問題,今天我就特地梳理下我常用到的幾個小方法,放到公共util裡能提高不少效率呢!
1.一維陣列排序
(1)js原生sort
/*
* @name 陣列排序
* @param
* list 原始陣列
* mode 預設asc公升序 desc降序
* @author [email protected]
*/function sortarray(list,mode='asc')
else if (mode == 'desc')
}; var res = list.sort(compare);
return res;
}var res = sortarray(arr,'desc')
console.log(json.stringify(res))
(2)快排
var count = 0
var arr = [85, 24, 63, 45, 17, 31, 96, 50]
function quicksort(arr)
var pivotindex = math.floor(arr.length / 2);
var pivot = arr.splice(pivotindex, 1)[0];
var left = ;
var right = ;
for (var i = 0; i < arr.length; i++) else
} count ++
return quicksort(left).concat([pivot], quicksort(right));
};var resarr = quicksort(arr)
console.log('排了' + count + '次')
console.log(resarr)
2.二維陣列排序
var arr = [
, ,
, ];
/* * @name 陣列按照某一項key值排序
* @param
* list 原始陣列
* property 需要排的屬性
* mode 預設asc公升序 desc降序
* @author [email protected]
*/function sortarraybyproperty(list,property,mode='asc')
else if (mode == 'desc')
}}; var res = list.sort(compare(property));
return res;
}var res = sortarraybyproperty(arr,'age','asc')
console.log(json.stringify(res))
3.字串排序,按照首字母
(1)英文
var list = [,,];
function stringsort(property)
}console.log(json.stringify(list.sort(stringsort('name'))));
(2)中文
var list3 = [,,,];
function chinesecharacters(property)
}console.log(json.stringify(list3.sort(chinesecharacters('loc'))));
JS二維陣列排序組合
需求是這樣的 這裡簡述一下 現在有乙個不確定長度的陣列.比如 var temp fu hai huan wei you chong tong zhong 每乙個陣列的長計都不確定 如何 遍歷這個陣列 得到如 fuweichong fuweitong 這樣的資料 這是乙個js二維陣列排序組合問題,用遞...
js二維陣列
方法一 直接定義並且初始化,這種遇到數量少的情況可以用 var thearray 0 1 0 2 1 1 1 2 2 1 2 2 方法二 未知長度的二維陣列 var tarray new array 先宣告一維 for var k 0 ktarray k new array 宣告二維,每乙個一維陣列...
js二維陣列新增元素 js 二維陣列
二維陣列的本質 陣列中的元素又是陣列 var arr 1,2,4,6 2,4,7,8 8,9,10,11 9,12,13,15 這就是乙個二位陣列 arr 2 3 11 注意 表示第三列第4行所在的元素。角標從0開始 console.log arr 1 0 a 第2列第1行所在的元素 var arr...