JavaScript数组常用方法
JavaScript数组常用方法
方法名 | 语法 | 作用 | 返回值 | 原数组 | 示例 |
---|---|---|---|---|---|
push | 数组名.push(数据) | 往数组末尾添加数据 | 原数组的长度 | 是 | var arr = [10, 20, 30, 40] res = arr.push(20) console.log(arr);//[10,20,30,40,20] console.log(res);//5 |
unshift | 数组名.unshift(数据) | 往数组头部添加数据 | 原数组的长度 | 是 | var arr = [10, 20, 30, 40] res=arr.unshift(99) console.log(arr);//[99,10,20,30,40] console.log(res);//5 |
pop | 数组名.pop() | 删除数组末尾的一个数据 | 删除的那个数据 | 是 | var arr = [10, 20, 30, 40] res =arr.pop() console.log(arr);//[10,20,30] console.log(res);//40 |
shift | 数组名.shift() | 删除数组头部的一个数据 | 删除的那个数据 | 是 | var arr = [10, 20, 30, 40] res=arr.shift() console.log(arr);[20,30,40] console.log(res);10 |
reverse | 数组名.reverse() | 翻转数组 | 翻转后的数组 | 是 | //reverse var arr = [10, 20, 30, 40] res=arr.reverse() console.log(arr);//[40,30,20,10] console.log(res);//[40,30,20,10] |
sort | 语法一:数组名.sort() 语法二:数组名.sort((a, b) => a-b) 语法三:数组名.sort((a, b) => b-a) |
语法一:位排序-比较第一个字符大小 语法二:正序排序 语法三:逆序排序 |
排序后的数组 | 是 | //sort() var arr = [2, 63, 48, 5, 4, 75, 69, 11, 23] arr.sort() arr.sort(function(a,b){return(a-b)}) arr.sort(function(a,b){return(b-a)}) |
splice | 截取数组 语法一:数组名.splice(开始索引, 个数) 语法二:数组名.splice(开始索引, 个数, 需要插入的数据) |
语法一:截取数组 语法二:删除并插入数据 |
截取出来的新数组 | 是 | *//splice() 语法一 var arr = [2, 63, 48, 5, 4, 75] res = arr.splice(1,2) console.log(arr); // [ 2, 5, 4, 75 ] console.log(res); // [ 63, 48 ] //splice() 语法二 *var arr = [2, 63, 48, 5, 4, 75] res = arr.splice(1,1,99999,88888) console.log(arr); // [2, 99999, 88888, 48, 5, 4, 75] console.log(res); // [ 63 ] |
concat | arr.concat(data) | 合并数组 | 新数组 | 否 | var arr = [10, 20, 10, 30, 40, 50, 60] res = arr.concat(20,“小敏”,50) |
join | arr.join(‘+’) | 数组转字符串 | 字符串 | 否 | //join var arr = [10, 20, 10, 30, 40, 50, 60] res = arr.join(“+”) |
slice | arr.slice(start_index, end_index) | 截取数组一部分 | 新数组(包前不包后) | 否 | var arr = [10, 20, 10, 30, 40, 50, 60] res = arr.slice(1,4) console.log(arr) //[ 10, 20, 10, 30, 40, 50, 60] console.log(res); //[ 20, 10, 30 ] |
indexOf | arr.indexOf(data) arr.indeOf(data, start_index) |
检查这个数组中有没有该数据 start_index规定在字符串中开始检索的位置 |
有,返回该数据第一次出现的索引 没有,返回 -1 |
否 | var arr = [10, 20, 10, 30, 40, 50, 60] res = arr.indexOf(10,1) console.log(res); // 2 |
lastIndexOf | 参照indexOf | 从右检查数组中有没有这个数值 | 参照indexOf | 否 | |
forEach | arr.forEach((item, index, arr) => {}) | 遍历数组,然后操作,arr是原数组 | 无 | 否 | |
map | arr.map(item => item *10) | 映射数组,类似Python中的匿名函数 | 一个映射完毕的数组,这个数组合原数组长度一样 | 否 | |
filter | arr.filter(item => item > 2) | 过滤数组 | 如果有就是过滤(筛选)出来的数据 保存在一个数组中;如果没有返回一个空数组 | 否 | var arr = [1, 2, 3, 4, 5] console.log('原始数组 : ', arr); var res = arr.filter(function (item) { return item > 2 }) console.log(res); |
every | arr.every(item => item > 0) | 判断数组是不是所有元素都满足条件 | 只有所有的都满足条件返回的是true 只要有一个不满足返回的就是false |
否 | |
some | arr.some(item => item > 0) | 判断数组是不是有满足条件的元素 | 只有有一个满足条件返回的是true 只要都不满足返回的就是false |
否 | |
find | arr.find(item => item > 3) | 获取数组中满足条件的第一个数据 | 如果有 就是满足条件的第一个数据;如果没有就是undefined | 否 | |
reduce | arr.reduce((prev, item) => return prev *= item) | 叠加后的效果 + prev :一开始就是初始值 当第一次有了结果以后;这个值就是第一次的结果 |
叠加后的结果,要以return的形式书写返回条件 | 否 | |