JavaScript 学习 - 数组。JavaScript 中的 Array 可以包含任意数据类型,并可通过索引来访问每个元素。
同 Java 一样,要取得 Array 的长度的话,可以直接访问 length 属性。
- var arr = [1, 2, 3, 'A', 'B', 'C'];
- arr.length; //6
如果直接给 length 赋一个新的值,会导致 Array 大小的变化
- var arr = [1, 2, 3];
- arr.length; //长度是3 arr.length=6; arr;//arr变成[1,2,3,undefined,undefined,undefined] arr.length=2; arr;//arr变成[1,2]
Array 可以通过索引把对应的元素修改为新的值
- var arr = ['A', 'B', 'C'];
- arr[1] = 99;
- arr; //arr现在变['A','99','C']
如果索引超过了范围,同样会引起 Array 大小的变化
- var arr = ['A', 'B', 'C'];
- arr[5] = 'X';
- arr; //arr变为['A','B','C',undefined,undefined,'x']
在 JavaScript 的 Array 的越界访问不会报错,但在编写代码时,不建议直接修改 Array 的大小,访问索引时要确保索引不会越界
inidexOf与 String 类似,Array 也可以通过 indexOf( ) 来搜索一个指定元素的位置
slice
- var arr = [10, 20, '30', 'a'];
- arr.indexOf('30'); //索引为2 arr.indexOf(30);//没有找到30,返回-1
slice() 对应 String 的 substring(), 它截取 Array 的部分元素,返回一个新的 Array
- var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
- arr.slice(0, 3); //从0开始,到3结束,但不包括3,['A','B','C'] arr.slice9(3);//从3开始到结束,['D','E','F','G']
slice( ) 起止参数包括开始索引,不包括结束索引
如果不给 slice( ) 传递任何参数,它就会从头到尾截取所有元素。可以直接复制一个新的数组
push() 向 Array 的末尾添加若干元素;pop() 则删除 Array 的最后一个元素
unshift 和 shift
- var arr = [1, 2];
- arr.push('A', 'B');
- arr; //arr变为[1,2,'A','B'] arr.pop();//返回'B' arr;//arr变为[1,2,'A'] arr.pop();arr.pop();arr.pop();//连续删除3次,此时arr已没有元素 arr;//arr=[] arr.pop();//空数组pop不会报错,人死返回undefined arr;//arr=[]
unshift() 向 Array 的头部添加若干元素,shift() 则删除 Array 的第一个元素
sort
- var arr = [1, 2];
- arr.unshift('A', 'B');
- arr; //arr=['A','B',1,2] arr.shift();//返回'A' arr//arr=['B',1,2] arr.shift();arr.shift();arr.shift();//连续删除3次,此时arr=[] arr;//arr=[] arr.shift();//空数组shift不会报错,而是返回undefined
sort( ) 可以对 Array 进行排序,直接修改 Array 的元素位置,直接调用时,按照默认顺序排序
reverse
- var arr = ['B', 'C', 'A'];
- arr.sort();
- arr; //arr=['A','B','C']
reverse( ) 可以将 Array 的元素整个反转
splice
- var arr = ['three', 'two', 'one'];
- arr.reverse();
- arr; //arr=['one','two','three']
splice( ) 可以从指定的位置删除若干元素,然后再从该位置添加若干元素
concat
- var arr = [1, 2, 3, 'A', 'B', 'C'];
- arr.splice(2, 3, 'D', 'E'); //从第2个索引开始删除3个元素,返回['A','B','C'] arr;//arr=[1,2,'D','E','C'] //只删除不添加 arr.splice(2,2);//返回['A','B'] arr;//arr=[1,2,'C'] //只添加不删除 arr.splice(2,0,'F','G');//返回[] arr;//arr=[1,2,'F','G','C']
concat() 方法把当前的 Array 和另一个 Array 连接起来,并返回一个新的 Array
- var arr = ['A', 'B', 'C'];
- var arr2 = [1, 2, 3];
- var arr3 = arr.concat(arr2);
- arr3; //arr3=['A','B','C',1,2,3] arr;//arr=['A','B','C']
请注意,concat() 方法并没有修改当前 Array,而是返回了一个新的 Array
concat() 方法可以接收任意个元素和 Array,并且自动把 Array 拆开,然后全部添加到新的 Array 里
join
- var arr = ['A', 'B', 'C'];
- arr.concat(1, 2, [3, 4]); // ['A', 'B', 'C', 1, 2, 3, 4]
join() 方法把当前 Array 的每个元素都用指定的字符串连接起来,返回连接后的字符串
- var arr = ['A', 'B', 'C'];
- arr.join("~"); //返回'A~B~C'
就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: http://www.92to.com/bangong/2017/03-17/18939515.html