Js数组的排序(转)

用数组的排序:sort()方法。 但sort()方法本身是按ASCII字符代码从小到大排列的.所以说,如果是数字的话,会出现下面这种情况:
var arr = [3, 32, 3, 5];
arr.sort();
alert(arr.toString());
   //输出:2,3,32,5

但是, sort()方法可以接收一个参数,就是一个比较函数;也就是说,可以自己写个比较函数;这样的话,不管要排序的数组里的值是什么类型的,都可以排序,前提是自己写的方法够好,如下:
function compare(str1, str2){
    if(str1 < str2){
        return -1;
    }else if(str1 > str2){
        return 1;
    }else{
        return 0;
    }
}
此函数和不传递参数时的功能一样。都是从小到大排列,而且是按字符串来比较的,但如果想要从大到小排列,只需要把返回-1 和 1 的判断换一下就OK了。但两者相等的时候必须是返回0;比较函数的两个参数是不用我们写的,sort()会自动在比较的时候传进去。
上面的判断其实和String类的localCompare()方法是一样的,所以可以直接写成这样:
function compare(str1, str2){
    return str1.localCompare(str2);  //从小到大.
  //return -str1.localCompare(str2);  //从大到小.
}
上面的例子,给数字排序,可以自己写个函数,按数字来比较:
function compareInt(int1, int2){
    var iNum1 = parseInt(int1);   
//强制转换成int 型;
    var iNum2 = parseInt(int2);
    if(iNum1 < iNum2){
        return -1;
    }else if(iNum1 > iNum2){
        return 1;
    }else{
        return 0;
    }
}
这时候:
var arr = [3, 32, 2, 5];
arr.sort(compareint);
alert(arr.toString());   //输出:2,3,5,32

reverse()方法:
此方法用来将数组中元素的顺序倒转;所以,如果一数组已经按升序排好,只需要对数组执行:reverse()就可以变成降序。上例:arr.reverse();alert(arr.toString()); //输出:32,5,3,2

多维数组排序:
sort()默认是按照ASCII 字符顺序进行升序排列。如果需要自定义排序,例如希望通过二维数组中的第二列数据排序:
var testArray = new Array();
testArray[0]= new Array('e','2','g');
testArray[1]= new Array('b','3','c');
testArray[2]= new Array('a','1','a');   
testArray[3]= new Array('d','4','h');   
testArray.sort(sortfunction);
alert(testArray[0] + "\n" + testArray[1] + "\n" + testArray[2] + "\n" + testArray[3])

// 排序方法中有两个参数,表示数组中两个用来排序的元素:
function sortfunction(x,y)
{
 return x[2].charCodeAt(0) - y[2].charCodeAt(0);//根据二维数组的第三列的第一个字母的ASCII码来降序排序
}
 
 
 
 
 

转载于:https://www.cnblogs.com/eversleeping/archive/2013/06/08/3126958.html

以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值