10-数组
使用Array的length属性获取Array的长度
1 var arr = [1, 2, 3, 14, "Hello", null, true]; 2 console.log(arr.length); // 使用length属性获取数组的长度
注意:直接给Array的length属性赋一个新值会导致Array的大小发生改变
1 <script type="text/javascript"> 2 var arr = [1, 2, 3, 14, "Hello", null, true]; 3 console.log(arr.length); // 使用length属性获取数组的长度 4 arr.length = 3; 5 console.log(arr); 6 arr.length = 10; 7 console.log(arr); 8 </script>
上面代码的执行效果如下:
可以通过所以修改Array中对应的数值,如:
1 var arr1 = ["A", "B", 2]; 2 arr1[0] = "C"; 3 console.log(arr1);
代码执行结果如下:
请注意,如果通过索引赋值时,索引超过了范围,同样会引起Array
大小的变化:
1 var arr1 = ["A", "B", 2]; 2 arr1[0] = "C"; 3 console.log(arr1); 4 arr1[5] = "D"; 5 console.log(arr1);
代码执行效果如下:
在编写代码时,不建议直接修改Array
的大小,访问索引时要确保索引不会越界。
操作数组
indexOf
与String类似,Array
也可以通过indexOf()
来搜索一个指定的元素的位置:
1 var arr2 = [10, "10", 'a']; 2 console.log(arr2.indexOf(0)); 3 console.log(arr2.indexOf(10));
代码执行效果如下:
注意:
1.我们查找索引的元素存在于数组中会返回对应的索引
2.数组中不存在我们要查找的元素返回-1
slice
1 var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; 2 arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C'] 3 arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G']
1 var arr3 = [0, 1, 2, 5, 0]; 2 console.log(arr3.slice(0, 1));
注意:slice()
的起止参数包括开始索引,不包括结束索引。
push和pop
push()
向Array
的末尾添加若干元素,pop()
则把Array
的最后一个元素删除掉:
1 var arr4 = ['A', 'b']; 2 arr4.push(1); 3 console.log(arr4); 4 arr4.pop(); 5 console.log(arr4);
1 var arr = [1, 2]; 2 arr.push('A', 'B'); // 返回Array新的长度: 4 3 arr; // [1, 2, 'A', 'B'] 4 arr.pop(); // pop()返回'B' 5 arr; // [1, 2, 'A'] 6 arr.pop(); arr.pop(); arr.pop(); // 连续pop 3次 7 arr; // [] 8 arr.pop(); // 空数组继续pop不会报错,而是返回undefined 9 arr; // []
unshift和shift
如果要往Array
的头部添加若干元素,使用unshift()
方法,shift()
方法则把Array
的第一个元素删掉:
1 var arr5 = [1, 'A']; 2 arr5.unshift(2); 3 console.log(arr5); 4 arr5.shift(); 5 console.log(arr5); 6 arr5.shift(); 7 console.log(arr5); 8 arr5.shift(); 9 console.log(arr5); 10 arr5.shift(); 11 console.log(arr5);
注意:当数组里面没有数据,而我们继续删除的时候程序不会报错,而是返回[]
sort
sort()
可以对当前Array
进行排序,它会直接修改当前Array
的元素位置,直接调用时,按照默认顺序排序:
1 var arr6 = [1, 2, 6, 3, 2]; 2 console.log(arr6.sort()); 3 var arr7 = ['A', 'c', 'e', 'B']; 4 console.log(arr7.sort()); 5 var arr8 = [1, 2, "b", 'A', 2]; 6 console.log(arr8.sort());
reverse
reverse()
把整个Array
的元素给调个个,也就是反转:
var arr9 = [1, 2, 6, 4]; console.log(arr9.reverse())
splice
splice()
方法是修改Array
的“万能方法”,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素:
concat
concat()
方法把当前的Array
和另一个Array
连接起来,并返回一个新的Array
:
var arr = ['A', 'B', 'C']; var added = arr.concat([1, 2, 3]); added; // ['A', 'B', 'C', 1, 2, 3] arr; // ['A', 'B', 'C']
请注意:
concat()
方法并没有修改当前Array
,而是返回了一个新的Array
。
实际上,concat()
方法可以接收任意个元素和Array
,并且自动把Array
拆开,然后全部添加到新的Array
里:
1 var arr = ['A', 'B', 'C']; 2 arr.concat(1, 2, [3, 4]); // ['A', 'B', 'C', 1, 2, 3, 4]
join
join()
方法是一个非常实用的方法,它把当前Array
的每个元素都用指定的字符串连接起来,然后返回连接后的字符串:
1 var arr = ['A', 'B', 'C', 1, 2, 3]; 2 arr.join('-'); // 'A-B-C-1-2-3'
多维数组
如果数组的某个元素又是一个Array
,则可以形成多维数组