判断变量是不是数组(对象也适用)
var obj = [];
(1)instanceof方法
obj instanceof Array ; //true
(2)Array.isArray()方法
Array.isArray(obj); //true
数组的拼接
.concat(数组,数组,数组);将多个数组拼接起来,组合一个新的数组
var arr = [10,20,30]; var arr1 = [40,50,60]; var arr2 = [70,80,90]; var array = arr.concat(arr1,arr2); console.log(array); //[10, 20, 30, 40, 50, 60, 70, 80, 90]
.every():该函数返回的是布尔值,函数作为参数使用,函数中有三个参数,第一个参数是元素的值,第二个参数是索引值,第三个参数是原来数组
如果这个数组中的每个元素都符合条件,最后才返回的是true
举个例子:
例子1: var arr = [100,200,300]; var flag = arr.every(function(a,b){ return a > 200; //数组中的每个元素都要大于200才返回true }) console.log(flag); //false,因为并不是每个元素都大于200
例子2: var arr = ["小白白","小明明","小花花","小周周"]; var flag = arr.every(function(ele,index){ return ele.length>2; //判断数组的每个元素是不是长度都大于2 }) console.log(flag); //true
.filter(函数):返回的是数组中每一个元素都符合条件的元素,组成了一个新的数组
var arr = [10,0,20,0,30,0,40,0,50]; //数组里面的每个元素都会执行一遍下面的函数 var newArr = arr.filter(function (ele){ return ele!=0; //返回的是不等于0的数组 }); console.log(newArr); //[10, 20, 30, 40, 50]
.push(值):给数组追加元素
var arr = [10,20,30]; arr.push(400); console.log(arr); //[10, 20, 30, 400]
.pop():弹出数组的最后一个元素
该函数有返回值,返回值就是删除掉的那个值
var arr =[10,20,30,40]; arr.pop(); console.log(arr); //[10, 20, 30]
.shift():删除的都是数组的第一个值
var arr =[10,20,30,40]; var r = arr.shift(); console.log(r); //返回的是删除的那个值 console.log(arr); //[20, 30, 40]
unshift():向数组的第一个元素前面插入一个新的元素,返回值是插入后的长度
var arr =[10,20,30]; var r = arr.unshift(); console.log(r); //4 console.log(arr); //[100, 10, 20, 30]
forEach(函数):遍历数组
var arr = [10,20,30,40]; arr.forEach(function (ele,index){ console.log(ele+","+index); }); 结果:10,0 20,1 30,2 40,3
.indexOf(值):返回的是索引,跟String里面的用法一样
.join(符号或者值):返回的是字符串(加进去值的字符串)
var arr= ["小白","小明","小红","小爱","小花"]; var str = arr.join("|"); //在这些值之间加“|” console.log(str); //小白|小明|小红|小爱|小花
.map(函数):数组中的每个元素都要执行这个函数,把执行后的结果重新组成一个数组
var num = [1,4,9]; var roots = num.map(Math.sqrt); console.log(roots); //[1, 2, 3]
.reverse():实现数组的反转
var arr = [10,20,30,40,50]; arr.reverse(); console.log(arr); // [50, 40, 30, 20, 10]
.sort():实现排序
注意:这个函数不稳定,有时候可以排序,有时候不行,要给里面传一个函数,才能使这个排序稳定
var arr = [1,3,23,65,2,3]; arr.sort(); console.log(arr); //[1, 2, 23, 3, 3, 65] 此时就不稳定,所以并没有排序成功,需要给sort里面传一个参数,看以下代码
var arr = [1,3,23,65,2,3]; arr.sort(function(a,b){ //此时的a就相当于arr[i],b相当于arr[i+1],两者进行比较 if(a>b){ return 1; }else if(a==b){ return 0; }else{ return -1; } }); console.log(arr); //[1, 2, 3, 3, 23, 65] 此时就排序好了,sort函数里面的代码是固定的
.slice(a,b):截取一段字符串,从a开始到b结束,包含a不包含b
splice(开始的位置,要删除的个数,替换的元素的值):用于删除数组中的元素或者是替换元素,或者是插入元素
var arr = ["programmer","english","important","logic"]; arr.splice(2,0,"very"); //就是在下标为2的后面插入一个“very”的单词 console.log(arr); // ["programmer", "english", "very", "important", "logic"]
var arr = ["programmer","english","important","logic"]; arr.splice(1,1,"very"); //下标为1的后面删除一个之后,插入指定的单词 console.log(arr); //["programmer", "very", "important", "logic"]
var arr = ["programmer","english","important","logic"]; arr.splice(2,1); //从第二个开始,删除一个 console.log(arr); //["programmer", "english", "logic"]