集合引用类型Array

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
     
     <script>
         /*
            1.判断一个值是否是数组
            if(Array.isArray(value)){
                // 操作数组
            }
         */
         
         /*
         2.迭代器方法
         */
        const a = ["foo", "bar", "baz", "qux"]
 
        console.log(a.keys()); // Array Iterator
        // 通过Array.from() 直接转换为数组实例
        const aKeys = Array.from(a.keys())
        console.log(aKeys); //
        // 还有 a.values()  a.entries()
 
 
        /*
        3.复制和填充
        批量复制fill()
        填充数组copyWithin()
        */
 
        /*
        4.转换字符串
        toString()
        valueOf()
        toLocaleString()
        join()---替换字符串分隔符(以指定元素分割开数组)
        */
        let colors = ["red", "blue", "green"]
        console.log(colors.toString()); //red,blue,green  转换字符串--
 
        /*
        5.栈方法(后进先出)
            ---push()  添加在数组末尾
            ---pop()   删除数组的最后一项,同时减少数组length值,返回被删除的项
        */
       /*
       6.队列方法(先进先出)
            ---shift()   删除数组的第一项并返回它
            ---unshift()    在数组开头添加任意多个值
       */
 
       /*
       7.排序方法
            ---reverse()  反向排列
            ---sort()     升序排列
        */
 
        // 排序案例--因为sort()先把值转换为了字符,所以10会排在5之前
        function compare(value1, value2){
            if(value1 < value2) {
                return -1;
            }else if(value1 > value2) {
                return 1;
            }else {
                return 0;
            }
        }
         let values = [2,1,6,,0,5,8,7,10,16,15]
 
         values.sort(compare);
         console.log(values); // [0, 1, 2, 5, 6, 7, 8, 10, 15, 16, empty]
 
        //  简洁写法(降序--把return的1和-1修改一下就可以)
        let values2 = [2,1,6,,0,5,8,7,10,16,15]
        values2.sort((a, b) => a < b ? 1 : a > b ? -1 : 0);
        console.log(values2); //  [16, 15, 10, 8, 7, 6, 5, 2, 1, 0, empty]
 
 
        /*
        8.操作方法
            ---concat()    把参数添加在数组末尾,返回一个新数组,原数组不变
            ---slice()     切割数组,原数组不变
            ---splice()    在数组中间插入元素(删除,插入,替换),返回被删除的元素
        */
 
        /*
        9.搜索和位置方法
            严格相等---(会使用===)比较
                indexOf()      ---没找到返回-1,找到返回索引
                lastIndexOf() ---从末尾开始向前搜索
                includes()
            断言函数---(3个参数  元素  索引  和数组本身)每个索引都会调用这个函数
                find()
                findIndex()
        */
        let numbers = [1,2,3,4,5,4]
        console.log(numbers.indexOf(4)); // 3
        console.log(numbers.lastIndexOf(4)); // 5---找到第一个,从后往前寻找(但是返回的索引是正序)
        console.log(numbers.includes(4)); // true
 
        const people = [{
            name: "Matt",
            age: 27
        },{
            name: "nick",
            age: 29
        }]
        console.log(people.find((el, index, array) => el.age < 28)); // {name: "Matt", age: 27}
        console.log(people.findIndex((el, index, array) => el.age < 28));    // 0
 
 
        /*
        10.迭代方法
            (三个参数  数组元素  元素索引  数组本身)
            every()和some()
            filter() 
            forEach()
            map()   
        */
     
        // every()每一项都是true,才会返回true,否则false
        // some()有一项true,就是true
        // filter()返回true的项会组成数组之后返回
        let numbers2 = [1,2,3,4,5,4]
        let filterResult = numbers2.filter((item, index, array) => item > 2)
        console.log(filterResult); // [3, 4, 5, 4]
 
        // map()--可对元素进行函数处理,并返回数组
        let numbers3 = [1,2,3,4,5,4]
        let mapResult = numbers3.map((item, index, array) => item*3);
        console.log(mapResult); // [3, 6, 9, 12, 15, 12]
 
        /*
        11.归并方法
            reduce()
            reduceRight()
            参数(上一个归并值, 当前项, 当前项的索引 ,数组本身)--求和
        */
        let numbers4 = [1,2,3,4,5,4]
        let sum = numbers4.reduce((pre, cur, index, array) => pre + cur);
        console.log(sum); // 19
 
     </script>
</body>
</html>

  

posted @   小白咚  阅读(32)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2020-03-18 00:00时分格式转换为int分钟数值
2020-03-18 new Date时间戳格式-转换yyyy-MM-dd
2020-03-18 display:flex弹性布局--横向分配空间
点击右上角即可分享
微信分享提示