Array 是 JavaScript 的原生对象
构造函数
var arr=new Array()
参数可以是单个数字表示产生长度为几的数组, 但各个成员的值都为空, 如果是多个数字的话, 就表示数组成员; 也可以是字符串数组等. 但如果参数是空位的话, 就会读取到 undefined, 而且读取不到键名
实例:
- var arr = new Array(3);
- arr.length // 3
- arr // [ empty x 3]
判断是否为数组
Array.isArray() 返回一个布尔值, 表示是否为数组, 返回值为布尔值
- var arr = [1, 2, 3];
- Array.isArray(arr) // true
方法
1:valueOf() 表示对该对象求值, 返回数组本身
- var arr = [1, 2, 3];
- arr.valueOf() // [1, 2, 3]
2:toString() 返回数组的字符串形式, 数组变字符串
- var arr = [1, 2, 3];
- arr.toString() // "1,2,3"
3:push() 在数组的末端添加一个或者多个元素, 并返回添加新元素的数组长度, 会改变原来的数组
- var arr = [1,2];
- console.log(arr.push(3));//3--- 返回添加新元素后的数组长度
4:pop() 删除数组的最后一个元素, 并返回该元素, 会改变原来的数组. 对空数组使用 pop 方法, 会返回 undefined
- var arr = ['a', 'b', 'c'];
- console.log(arr.pop()); // 'c'-- 删除最后一个元素, 并将其返回
5:shift() 用于删除数组的第一个元素, 并返回该元素, 会改变原来数组
Unshift() 用于在数组第一个位置添加元素, 并返回新元素的数组长度, 该方法会改变原数组
- var a = ['a', 'b', 'c'];
- console.log(a.shift()); // 'a'-- 在第一个位置删除元素 a
- console.log(a );// ['b', 'c']
- a.unshift('d'); // 4-- 添加 d 元素, 并返回数组长度 4
6:join() 将数组转化为字符串. 以指定参数作为分隔符, 将所有数组成员连接成为一个字符串返回, 如果数组成员是 undefined 或 null 或者空位, 会将转化为空字符串
- var a = [1, 2, 3];
- console.loga.join(''));//'1 2 3'console.loga.join(' | '));//"1 | 2 | 3 "console.loga.join()); //"1,2,3"
7:concat() 数组合并, 将新数组的成员添加到原数组成员的后面, 但不影响原数组
- var a=[1,2,3];
- var b=[4,5,6];
- console.log(a.concat(b));//[1,2,3,4,5,6]
8:reverse() 用于颠倒数组元素, 返回改变后的数组, 该方法会改变原数组
- var a = ['a', 'b', 'c'];
- console.log(a.reverse()); // ["c", "b", "a"]
- console.log(a );// ["c", "b", "a"]
9:arr.slice(start,end) 返回一个新数组, 原数组不变: 两个参数, 第一个参数为起始位置, 第二个参数为终止位置, 左开右闭 [start,end), 取小不取大
- var a = ['a', 'b', 'c'];
- console.log(a.slice(0)) // ["a", "b", "c"]
- console.log(a.slice(1, 2)) // ["b"]
10:splice() 用于删除原数组的一部分成员, 并且在删除的位置添加新的数组成员, 返回值是被删除的元素, 会改变原数组 如果是删除的话第一个参数是索引起始位置, 第二个参数是被删除元素的个数; 插入元素的话可以直接在这两个元素后面添加新成员
- var a = ['a', 'b', 'c', 'd', 'e', 'f','g'];
- a.splice(4, 2) // ["e", "f"]
- a//['a', 'b', 'c', 'd','g'];
- a.splice(0, 2, 'h', 'i') // ["a", "b"]
- a // [ 'c', 'd','g','h', 'i'];-- 删除 a,b 并添加 h i
11:sort() 对数组成员进行排序, 按照字典顺序排序, 数值会被转化为字符串, 然后再进项字典顺序排序, 排序后原数组
成员将被改变, 可以传入一个函数作为参数
实例 1: console.log([9,7,8,6].sort());//[6,7,8,9]
实例 2:[3,2,4,1].sort(function (n1,n2){
- return n1-n2;
- });
- console.log(b);//[1,2,3,4]
12:map() 将数组的所有成员依次传入参数, 然后将每一次的执行结果组成一个新数组返回, 接受一个函数, 函数中传入三个参数, 当前成员 当前位置 数组本身 相当于遍历数组, 映射一个新数组
- var numbers = [1, 2, 3];
- numbers.map(function (n) {
- return n + 1;
- });// [2, 3, 4]
- numbers
- // [1, 2, 3]
13:forEach 遍历数组 element,index,array--- 当前值, 当前位置, 整个数组
- var a=[1,2,3,4];
- a.forEach(function (val, index, arr) {
- arr[index]+=val;
- })
- console.log(a)//[2,4,6,8]
14:filter() 用于过滤数组成员, 满足条件的成员组成一个新数组返回
- console.log([1,2,3,4].filter(function (val, index, arr) {
- if (val % 2 == 0) {
- return val;
- }
- }));//[2,4]
15:some() 返回一个布尔值, 表示判断数组成员是否符合某种条件.
- var arr = [1, 2, 3, 4, 5];
- arr.some(function (elem, index, arr) {
- return elem>= 3;
- });
- // true--- 如果有一个大于等于 3, 就会返回 true
16:reduce() 累加 // 累乘
- console.log([1,2,3].reduce(function (totle, current, index) {
- return totle *= current;
- }));//6
来源: http://www.bubuko.com/infodetail-3150214.html