您的位置:首页 > Web前端

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

2017-05-20 21:38 447 查看
二维数组: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,xelse return x,y3.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 标准并没有规定如何进行本地特定的比较操作,它只规定该函数采用底层操作系统提供的排序规则。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript