js数组排序
文章描述:
JavaScript对数组字母、数字、中文进行排序
数字
var points = [50, 100, 1, 5, 2, 20,10];
points.sort(function(a, b){
return a - b //正数为升序
});
console.log(points)
[1, 2, 5, 10, 20, 50, 100]
降序
var points = [50, 100, 1, 5, 2, 20,10];
points.sort(function(a, b){
return b - a //降序
});
console.log(points)
[100, 50, 20, 10, 5, 2, 1]
字母
var fruits = ["Banana", "Orange", "Apple", "Mango", "Strawberry"];
let arr = fruits.sort(); // 对 fruits 中的元素进行排序
console.log(arr);
[‘Apple’, ‘Banana’, ‘Mango’, ‘Orange’, ‘Strawberry’]
反转数组
reverse() 方法反转数组中的元素
let arr2 = fruits.reverse();
console.log(arr2);
[‘Strawberry’, ‘Orange’, ‘Mango’, ‘Banana’, ‘Apple’]
中文
var arr = [
{name: '南京', code: '09', info: {province: '江苏'}},
{name: '北京', code: '01', info: {province: '北京'}},
{name: '南充', code: '04', info: {province: '四川'}},
{name: '上海', code: '02', info: {province: '上海'}},
{name: '深圳', code: '05', info: {province: '广东'}}
];
function sortChinese (arr, dataLeven) { // 参数:arr 排序的数组; dataLeven 数组内的需要比较的元素属性
/* 获取数组元素内需要比较的值 */
function getValue (option) { // 参数: option 数组元素
if (!dataLeven) return option
var data = option
dataLeven.split('.').filter(function (item) {
data = data[item]
})
return data + ''
}
arr.sort(function (item1, item2) {
return getValue(item1).localeCompare(getValue(item2), 'zh-CN');
})
}
sortChinese(arr, 'name') // 例如:比较的是name,传入的就是 'name'
console.log(arr);
sortChinese(arr, 'info.province') // 例如:比较的是数组元素属性info内的province属性,传入的就是 'info.province'
console.log(arr);
发布时间:2023/08/28
发表评论