1.声明数组
1.构造函数声明
var arr = new Array()
2.字面量声明
var arr = []
注意:若只传一个参数表示数组的长度值
3.字符串-切割
var a="000".split("")
4.match() 可在字符串内检索指定的值,返回的是值
var a="fssaffsdss".match(/s/g)
拓展:eval()可计算某个字符串,并执行其中的的 JavaScript 代码。
可以将字符串转换成数组或者JSON对象
2.数组的方法
1.valueOf() 返回数组对象本身
2.toString() 把数组转换成字符串
3.join() 把数组中的每一项进行拼接(默认,)
4.从后边增删:push()、pop()
从前面增删:unshift() 、shift()
5.Array.concat()方法创建并返回一个新数组(数组拼接)
arr.concat(4,[6,7]) //[1, 2, 3, 4, 6, 7]
arr.concat([4,[6,7]]) //[1, 2, 3, 4, Array(2)]
6.sort()将数组中的元素排序并返回排序后的数组(默认从小到大)
arr.sort(function(a,b){
return b-a; //从大到小
});
7.reverse()将数组中的元素颠倒顺序,返回逆序的数组
8.slice()截取新的数组,不会修改原始数组
参数1开始 2结束 开始能取到 结束取不到
9.splice()修改原始数组的值,并返回一个新的数组
参数1指定了插入或删除的起始位置,
参数2指定了删除的元素的个数,参数省略则默认删到末尾。
其后的任意个数的参数指定了需要插入到数组中的元素
arr=[1, 2, "a", "b", 3, 4, 5]
arr.splice(2,1,[1,2],3)); 返回 ["a"]
arr返回 [1, 2, [1, 2], 3, "b", 3, 4, 5]
10.检测数组arr instanceof Array
Array.isArray(arr)(ES5新方法)
11.获取数组中每个元素出现的次数
var arr = ["c", "a", "z", "a", "x", "a"];
var o = {};// c:1 a:3 z:1 x:1
for (var i = 0; i < arr.length; i++) {
var item = arr[i];
if (o[item]) {
o[item] = o[item] + 1;
} else {
o[item] = 1;
}
}
3.ES5新方法
1.indexOf()和lastIndexOf()(找到了一个就退出了),没有找到则返回-1.
var arr = ['orange', '2016', '2016'];
arr.indexOf('orange'); //0
arr.indexOf('o'); //-1
arr.indexOf(orange); //-1
参数indexOf(searchvalue,fromindex)
2.reduce()使用指定的函数将数组元素进行组合,生成单个值。
var data = [1,2,3,4,5];
var sum = data.reduce(function(a,b){
return a+b;
});
var sum1 = data.reduce(function(a,b){
return a+b;
},5);
reduceRight()按照数组索引从高到低(从右到左)处理数组
3.filter()调用(过滤)数组的一个子集,返回一个新数组
var data = [1,2,3,4,5];
var data1 = data.filter(function(value){
return value <= 3;
});
4.every()数组中所有元素都满足函数指定的条件时返回 true;
5.some()某一项满足时就返回 true
6.map()将数组中每个元素传递给指定的函数,并返回一个数组,它包含这个函数的返回值
7.forEach()遍历数组,为每一项调用指定的函数。
4.清空数组的方法
arr=[],arr.length=0
arr.splice(0,arr.length)