数组方法
- valueOf() 返回数组本身
- toString() 通过字符串的方式返回数组 数组会平面化
- push() 在数组的后面添加一个元素,
- pop() 删除数组最后一个元素并返回这个元素
- join() 以参数作为分隔符,将数组通过分隔符链接城字符串并返回
- concat() 多个数组的合并
- shift() 删除数组的第一个元素并返回该元素
- unshift() 在数组前添加元素 返回 更新后的数组长度
- reverse() 颠倒数组
- slice() 提取数组中的一部分,类似字符串中的slice
- splice() 删除原数组的一部分, 在被删除的位置添加入新的元素,返回被删除的元素
- sort() 排序, 默认按字典排序
- map() 对数组的每一个成员调用函数,返回新的数组
- forEach() 遍历数组所有成员
- filter() 遍历数组, 返回结果为true的新数组,不改变原数组
- some() 判断数组成员是否
- every()
- reduce(),reduceRight()
- indexOf(),lastIndexOf()
1 数组也是对象
- array 是数组,但是他们也是对象,可以在他们上面添加string键/属性(但是这些属性不会计算在array的length中)
var arr = [];
arr[0] = 2;
arr['foobar'] = 3;
console.log(arr.length); // 1 数组的长度是1
console.log(arr[0]); // 2
console.log(arr['foobar']); // 3
console.log(arr.foobar); // 3
- 但是如果一个可以被转换为10进制number 的string被用作键的时候, 它会认为是想用number索引而不是一个string。也就是说string被转换为number了
var arr = [];
arr['23']= 23;
console.log(arr.length); // 返回数组长度为 24
注意: 一般不要向array添加string键/属性, 最好使用object, array 严格的用数字来索引
2. 数组工具函数
- concat() 连接数组
将参数列表连接到数组的最后面, 返回一个新的数组,原数组保持不变
var arr = ['a', 'b', 'c'];
var arr1 = arr.concat('d','e');
console.log(arr1); // a b c d e
var arr2 =[ 'd','e'];
var arr3 = arr.concat(arr2); // a b c d e
- push() 在后面添加元素
把参数添加到当前数组的最后,返回数组的长度。
var arr = ['a', 'b', 'c'];
arr.push('d','e');
alert(arr); // a b c d e
- unshift() 在前面添加元素
把参数添加到当前数组的最前, 返回数组的长度
var arr = ['a', 'b', 'c'];
arr.unshift('d','e');
alert(arr); // d e a b c
- pop() 弹出(删除)并返回数组的最后一个元素
var arr = ['a', 'b', 'c'];
var a = arr.pop()
console.log(a); // c 数组arr的最后一个值
alert(arr); // a, b 因为c 已经被删除
- shift() 弹出(删除)并返回数组的第一个元素
var arr = ['a', 'b', 'c'];
var a = arr.shift()
console.log(a); // c 数组arr的最后一个值
alert(arr); // a, b 因为c 已经被删除
- reverse() 将数组反转排列
var arr=[ 1, 2, 3,4,5];
arr.reverse();
console.log(arr); //[5,4,3,2,1]
- splice() 替换元素
删除或者替换数组中的元素然后将被删除的数返回给一个新的数组 原数组的元素会被删除
var arr = [ 1, 2, 3,4,5,6];
var arr1 = arr.splice( 0,2,22,33);
console.log(arr1); // 1 2
console.log(arr); 22 33 3 4 5 6
- slice() 获取数组子集
返回数组的一个子集 索引从开始位置(包括开始位置) 到结束位置(不包括结束位置), 原数组不受影响,如果开始或结束为负数,则加上数组长度再索引,但起始位置大于结束位置,返回空数组
var arr= [a,b,c,d,e,f];
var arr1= arr.slice(2,4); // 返回 arr[2] ,arr[3]
console.log(arr1); // c d
- sort(sortfunction) 排序函数
- 第一种使用方式 默认按照ASCII字符顺序升序排列默认
var arr = ['A','B','C','D','a','b','1','2',];
arr.sort();
console.log(arr);//["1", "2", "A", "B", "C", "D", "a", "b"] ASCII字符顺序升序
- 第二种使用方式 数字排序从 小到大】、
var arr = [1,23,4,654,768,8,46];
arr.sort(function(a,b){return a-b});
console.log(arr); //[1, 4, 8, 23, 46, 654, 768]
- 第二种使用方式 数字排序从 大到小
var arr = [1,23,4,654,768,8,46];
arr.sort(function(a,b){return b-a});
console.log(arr); //[768, 654, 46, 23, 8, 4, 1]
- arr.join() 数组转化字符串
使用参数中的字符串将数组连接成字符串
var arr = ['aaa','vb','asd','asd','fde'];
console.log(arr.join('+'));