数组筛选和排序

涉及JavaScript基本语法、事件、DOM相关的知识。

<h3>污染城市列表</h3>
    <ul id="aqi-list">
    </ul>

    <script type="text/javascript">
        var aqiData = [
            ["北京", 90],
            ["上海", 50],
            ["福州", 10],
            ["广州", 50],
            ["成都", 90],
            ["西安", 100],
            ["长沙", 88],
        ];

        (function() {
            /*
            在注释下方编写代码
            遍历读取aqiData中各个城市的数据
            将空气质量指数大于60的城市显示到aqi-list的列表中
            */
            //筛选符合条件的数组并构成新的数组newArr
            var newArr = [];
            for (var i = 0, j = aqiData.length; i < j; i++) {
                if (aqiData[i][1] > 60) { //数组 var aqiData = [ ["北京", 90]]中要取90用:aqiData[i][1]
                    newArr.push([aqiData[i][0], aqiData[i][1]]);
                }
            }
            // 数组大到小排序
            newArr.sort(function(a, b) {
                return b[1] - a[1];
            })
            var all = "";
            for (var i = 0, j = newArr.length; i < j; i++) {
                //名次中文化
                var rank = i + 1
                switch (rank) {
                    case 1:
                        rank_number = "";
                        break;
                    case 2:
                        rank_number = "";
                        break;
                    case 3:
                        rank_number = "";
                        break;
                    default:
                        rank_number = "前三以外忽略不计";
                        break;
                }
                //添加文本
                all += "<li>第" + rank_number + "" + ":" + newArr[i][0] + " " + newArr[i][1] + "</li>";
                var ul = document.getElementById('aqi-list');
                ul.innerHTML = all;
            }
        })();
    </script>

关于升序排列和降序排列

var test = [6, 2, 10];
test.sort(function(a, b) {
    return a - b;         //实在不懂可以联想负数在前,正数在后,前减后升序、后减前降序
});
console.log(test); //[2, 6, 10]

 function(a,b) 比较函数接收两个参数,如果第一个参数应该位于第二个之前则返回一个负数,如果两个参数相等则返回0,如果第一个参数应该位于第二个之后则返回一个正数。

转载于:https://www.cnblogs.com/EdisonVan/p/9093861.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值