数组扩展之扩展运算符

来源:7-2 编程练习

weixin_慕的地5241954

2019-10-17 01:48:28

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>
    //补充代码
    let arr = []; 
    for(let i = 0;i < 10; i++){
        arr.push(Math.round(Math.random()*100))
    }
    // 对数组进行降序排序,忘记了
//     对数组数字排序用函数来改变,修改方法如下:
//   var arr = [23, 9, 4, 78, 3];
//   var compare = function (x, y) {//比较函数
//     if (x < y) {
//       return -1;
//     } else if (x > y) {
//       return 1;
//     } else {
//       return 0;
//     }
//   }
// compare(1, 3) 通过接受正负一、0来判断大小再排序
//   console.log(arr.sort(compare)); 
// 如果要按降序排序,比较函数写成这样即可:
//   var compare = function (x, y) {
//     if (x < y) {
//       return 1;
//     } else if (x > y) {
//       return -1;
//     } else {
//       return 0;
//     }
//   }
// 我们还可以对上面的函数进行简化的写法:
//   var arr = [23, 9, 4, 78, 3];
//     //升序
//       arr.sort(function(a,b){
//         retun a-b;
//       });
//     //降序
//       arr.sort(function(a,b){
//         retun b-a;
//       });
    arr.sort(NumDescSort = (a,b) => b-a);
    console.log(arr)
    let min = Math.min(...arr),
        max = Math.max(...arr);
    document.write(arr.join(',') + '<br>');
    document.write('这个数组的最大值是: ' + max + ',最小值是: ' + min);
</script>
</body>
</html>

检查一下代码

请说一下注释部分的sort方法和compare函数的结合使用如何达到排序的,以及如何推导出简写排序?


写回答

2回答

一路电光带火花

2019-10-18

compare函数实现排序的原理就是使用了sort的规则,因为sort这个是封装好的,匿名函数就可以实现了。这个相当于替换了匿名函数,但是规则还是一样的,就是

返回值<=-1,则表示 A 在排序后的序列中出现在 B 之前。

返回值>-1 && <1,则表示 A 和 B 具有相同的排序顺序。

 返回值>=1,则表示 A 在排序后的序列中出现在 B 之后。

其实sort这个是内部封装好的,我们知道咋用就行了。

0

好帮手慕糖

2019-10-17

同学你好,1、代码中如下,单词拼写错误,少了一r。

http://img.mukewang.com/climg/5da7e963097083be04720332.jpg

2、这两种不需要结合,其中任何一种都可以达到排序的效果哦。sort是封装好的方法,使用比compare更方便哦。

希望能帮助到你,祝学习愉快!

0
heixin_慕的地5241954
h 1、sort方法接收一个函数参数,可以接收compare函数,arr.sort(compare),这个就是结合的效果,下面匿名函数的写法是compare的简化写法,也可以说是sort的封装效果。 2、我的问题就是compare函数实现排序的原理,以及sort怎么实现封装的?
h019-10-17
共1条回复

0 学习 · 10739 问题

查看课程