百度IFE学习笔记(一)js二维数组排序

这篇博客介绍了如何使用JavaScript对二维数组进行数值排序。主要关注以apiData[][0]为基准的升序排序,引用了w3school的localeCompare()方法进行比较,该方法考虑了本地排序规则,避免了简单的Unicode编码比较可能产生的错误排序问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二维数组:

var aqiData = [
        ["北京", 90],
        ["上海", 50],
        ["福州", 10],
        ["广州", 50],
        ["成都", 90],
        ["西安", 100]
    ];

一、以数值排序:

以 apiData[][1] 排序:

升序(从小到大):

var data = apiData.sort(function (x,y) {
    return x[1]-y[1];
});
倒序(从大到小):
aqiData.sort(function (x,y) {
            return y[1]-x[1];
        });

过程:(冒泡算法)

1.数组中元素依次赋给x,y,

arr[0]->x,arr[1]->y

则 x[1]相当于arr[0][1], x[1]相当于arr[1][1]

2.比较(例:x[1] – y[1]):

if(x[1] – y[1])>0

return y,x

else

return x,y

3.then

continue,

直到整个数组排序完成。



二、以字符串排序:

以 apiData[][0] 排序:

升序(从小到大):

apiData.sort(function(x, y){
  return x[0].localeCompare(y[0]);
});
倒序(从大到小):
apiData.sort(function(x, y){
  return y[0].localeCompare(x[0]);
});
localeCompare:用本地特定的顺序来比较两个字符串。

参考:w3school:  http://www.w3school.com.cn/jsref/jsref_localeCompare.asp

用法:

stringObject.localeCompare(target)
参数target: 要以本地特定的顺序与 stringObject 进行比较的字符串。

返回值:
说明比较结果的数字。如果 stringObject 小于 target,则 localeCompare() 返回小于 0 的数。如果 stringObject 大于 target,则该方法返回大于 0 的数。如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。

注:

把 < 和 > 运算符应用到字符串时,它们只用字符的 Unicode 编码比较字符串,而不考虑当地的排序规则。以这种方法生成的顺序不一定是正确的。例如,在西班牙语中,其中字符 “ch” 通常作为出现在字母 “c” 和 “d” 之间的字符来排序。

localeCompare() 方法提供的比较字符串的方法,考虑了默认的本地排序规则。ECMAscript 标准并没有规定如何进行本地特定的比较操作,它只规定该函数采用底层操作系统提供的排序规则。





 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值