数组常用方法
1.求数组最大值:
var arr = [ 1,5,1,7,5,9]; Math.max(...arr) // 9
var arr=[22,34,231,54] var m=Math.Max.apply(null, arr); //.apply会把数组里面的参数依次传入进去 alert(m);
2.判断是否为数组
var arr=[]; Array.isArray(arr); //返回true
3.添加删除数组
arr.push() //往数组后面添加新的数据 返回值数组长度 arr.unshift //往数组前面添加数据 返回值数组长度 arr.pop() //删除数组中的最后一位 (参数可以是第几位) 返回值删除的数据 arr.shift();//删除数组中的第一位 (无参数) 返回值删除的数据
4.利用下标查找数组
arr.indexOf(查找数组中的某一项,从第几位开始找); //返回对应的下标 arr.lastIndexOf(查找数组中的某一项,从第几位开始找) //从后往前找没找到返回-1;
5.截取数组
arr.slice(截取的位数,结束的位数); //返回值是截取出来的数组,不包括结束位 数组本身不变; arr.splice(从第几位开始,删除几位,替换的新数据) //返回值是被删除的元素
6.类数组转换成数组
var s = "History"; Array.from(s) //["H", "i", "s", "t", "o", "r", "y"]
7.反转数组
arr.reverse()
8.把数组转换成字符串
arr.join()
9.数组连接
var arr1=[1,2,3] var arr2=[4,5,6] var arr3=[7,8,9] var b=arr1.concat(arr2,arr3); //[1,2,3,4,5,6,7,8,9]
10.数组指定位置填充数据
arr.fill(要填充的内容,开始填充的位置,结束的位置) //用来填充数组; 例: var arr=["hao", "11111", "ni", "su", "yi"]; arr.fill("11111",1,4); //返回值["hao", "11111", "11111", "11111", "yi"]
11.检验数组是否都符合指定的条件
var ages = [32, 33, 16, 40];
function checkAdult(age) { return age >= 18; }
function myFunction() { document.getElementById("demo").innerHTML = ages.every(checkAdult); //false }
every() 方法使用指定函数检测数组中的所有元素:
如果数组中检测到有一个元素不满足,则整个表达式返回false,且剩余的元素不会再进行检。
如果所有元素都满足条件,则返回 true。
12.检查数组里面是否有满足指定条件的
var ages = [3, 10, 18, 20]; function checkAdult(age) { return age >= 18; } function myFunction() { document.getElementById("demo").innerHTML = ages.some(checkAdult); //true }
some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false
13.数组排序
从小到大 arr.sort(function(a,b){ return a - b; }); 从大到小 arr.sort(function(a,b){ return b - a; }); 随机排序 arr.sort(function(){ return 0.5-Math.random(); })
快速排序
var arr = [5,4,3,2,1,0]; for(var i = 0; i < arr.length; i++) { for(var j = 0; j < arr.length - i; j++) { if(arr[j] > arr[j+1]) { var temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } }
14.让数组快速乱序
var arr = [1,2,3,4,5,6,7,8,9,10]; arr.sort(function(){ return Math.random() - 0.5; }) console.log(arr);
15.数组求和
var arr=[1,21,22]; eval(arr.join('+'));