1 <script>
2 'use strict'//严格模式,没用关键字申明的变量都会报错
3 //Arry可以包含任意数据类型,并通过索引来访问每个元素
4 /*
5 .length 获取数组长度
6 注:直接给数组的length赋一个新值会导致数组大小变化
7 []通过索引赋值
8 注:索引超过了范围也会引起数组大小变化
9
10 编写代码时,不建议直接修改Array的大小,访问索引时要确保索引不会越界。
11
12 */
13 var arr = [1, '2', null, true]
14 console.log(arr.length)
15 arr.length = 6
16 console.log(arr) //(6) [1, "2", null, true, undefined × 2]
17 arr[1] = 2
18 console.log(arr) //(6)[1, 2, null, true, undefined × 2]
19 arr[6] = 'x'
20 console.log(arr) //(8) [1, 2, null, true, undefined × 3, "x"]
21
22 /*
23 indexOf() 搜索一个指定的元素的位置
24 slice() 截取Array的部分元素,然后返回一个新的Array
25 注:如果不给slice()传递任何参数,它就会从头到尾截取所有元素
26 */
27 console.log(arr.indexOf(null)) //2 如果没有找到,返回-1
28 console.log(arr.slice(0,3)) //[1, 2, null] 从索引0开始,到索引3结束,但不包括索引3
29
30 /*
31 push()向Array的末尾添加若干元素
32 pop()把Array的最后一个元素删除掉
33 */
34 arr.push('a', 'b')
35 console.log(arr)//(9) [1, 2, null, true, undefined × 2, "x", "a", "b"]
36 arr.pop()
37 console.log(arr) //[1, 2, null, true, undefined × 2, "x", "a"]
38
39 /*
40 unshift() 往Array的头部添加若干元素
41 shift() 把Array的第一个元素删掉
42 */
43 arr.unshift('a')
44 console.log(arr)//["a", 1, 2, null, true, undefined × 2, "x", "a"]
45 arr.shift()
46 console.log(arr)// [1, 2, null, true, undefined × 2, "x", "a"]
47
48 /*
49 sort() 排序 会直接修改当前Array的元素位置,直接调用时,按照默认顺序排序
50 reverse() 反转
51 splice() 修改Array的“万能方法”,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素
52 */
53 arr.sort()
54 console.log(arr) //[1, 2, "a", null, true, "x", undefined × 2]
55
56 arr.reverse()
57 console.log(arr)// [undefined × 2, "x", true, null, "a", 2, 1]
58
59 arr.splice(2,3,'good','boy')//从索引2开始删除3个元素,然后再添加两个元素
60 console.log(arr) // [undefined × 2, "good", "boy", "a", 2, 1]
61
62 arr.splice(2,3)//只删除,不添加
63 console.log(arr) // [undefined × 2, 2, 1]
64
65 arr.splice(2,0,'good','boy')//// 只添加,不删除:
66 console.log(arr) // [undefined × 2, "good", "boy", 2, 1]
67
68 /*
69 concat() 当前的Array和另一个Array连接起来,并返回一个新的Array
70 注:concat()并没有修改当前Array,而是返回了一个新的Array。可以接收任意个元素和Array,并且自动把Array拆开,然后全部添加到新的Array里
71 join() 把当前Array的每个元素都用指定的字符串连接起来,然后返回连接后的字符串
72 注:如果Array的元素不是字符串,将自动转换为字符串后再连接
73 */
74 var arr2 = arr.concat([1,2,3])
75 console.log(arr2) //[undefined × 2, "good", "boy", 2, 1, 1, 2, 3]
76 console.log(arr2.join('-'))//--good-boy-2-1-1-2-3
77
78 /*
79 多维数组
80 如果数组的某个元素又是一个Array,则可以形成多维数组
81 */
82 var arr3 = [[1, 2, 3], [400, 500, 600], '-']
83
84 //通过索引获取500这个值
85 var i = arr3[1][1]
86
87 var arr4 = ['小明', '小红', '大军', '阿黄'];
88 console.log("欢迎"+(arr4.sort().slice(0,arr4.length-1))+"和"+(arr4[arr4.length-1])+"同学!");
89 console.log(`欢迎${arr4.sort().slice(0, 3).join(',')}和${arr.pop()}同学!`)
90 </script>