数组常用方法
改变原数组
- push:
- 语法:
数组名.push(数据)
- 作用:向数组末尾添加数据
- 返回值:追加数据后,新数组的长度
var arr = [1,2,3,4,5];
console.log(arr.push(6));
console.log(arr);
- pop:
- 语法:
数组名.pop()
- 作用: 删除数组最后一条数据
- 返回值: 删除的数据
var arr = [1,2,3,4,5];
console.log(arr.pop());
console.log(arr);
- unshift:
- 语法:
数组名.unshift(数据)
- 作用:向数组开头添加数据
- 返回值:添加数据后,新数组的长度
var arr = [1,2,3,4,5];
console.log(arr.unshift(0));
console.log(arr);
- shift:
- 语法:
数组名.shift()
- 作用: 删除数组第一条数据
- 返回值: 删除的数据
var arr = [1,2,3,4,5];
console.log(arr.shift());
console.log(arr);
- reverse:
- 语法:
数组名.reverse()
- 作用: 反转数组
- 返回值: 反转后的数组
var arr = [1,2,3,4,5];
console.log(arr.reverse());
- sort:
- 语法1:
数组名.sort()
- 作用: 将数组转换成字符串类型后排序
- 语法2:
数组名.sort(function (a,b) {return a - b})
- 作用: 将数组的内容按照正序排列
- 语法2:
数组名.sort(function (a,b) {return b - a})
- 作用: 将数组的内容按照逆序排列
- 返回值: 排列后的数组
var arr = [23,456,75,234,14,121,74,967,4,121]
console.log(arr.sort());
console.log(arr.sort(function (a,b) {return a - b}));
console.log(arr.sort(function (a,b) {return b - a}));
- splice:
- 语法1: 数组名.splice(开始索引,多少个)
- 语法2: 数组名.splice(开始索引,多少个,新数据1,新数据2...)
- 作用: 截取数组内容
- 返回值: 以数组类型返回截取的数据
var arr = [1,2,3,4,5];
console.log(arr.splice(1,2));
console.log(arr);
var res = arr.splice(0,3,'111','222','333');
console.log(res);
console.log(arr);
不改变原数组
- indexOf:
- 语法:
数组名.indexOf(要检查的数据); 数组名.indexOf(要检查的数据, 开始索引)
- 作用: 从前到后检查该数据在数组内出现的索引位置
- 返回值: 如果数组中找到该数据,则返回相应索引,如果没找到返回 -1
var arr = [23,456,75,23,234,14,121,74,967,4,121]
console.log(indexOf(75,0));
console.log(indexOf(1,0));
console.log(indexOf(23,0));
console.log(indexOf(23,1));
- lastIndexOf:
- 语法:数组.lastIndexOf(要查询的数据, 从哪里开始查询(下标)) 第二个参数不写默认为 数组最后一个下标
- 作用:从后到前检查该数据在数组内出现的索引位置
- 返回值:如果数组中找到该数据,则返回相应索引,如果没找到返回 -1
var arr = [1, 2, 3, 4, 5, 4, 3, 2, 1]
console.log(arr.lastIndexOf(1))
console.log(arr.lastIndexOf(1, 3))
console.log(arr.lastIndexOf(100, 3))
- slice:
- 语法:
数组名.slice('开始下标','结束下标')
- 参数:
- 包含开始下标不包含结束下标
- 两个参数都可以省略不写
- 参数可以支持 负数, 相当于 数组.length + 负数
- 作用:将选中的数据复制
- 返回值:以数组形式返回复制的内容
var arr = [1,2,3,4,5,6,7,8,9,10]
var res = arr.slice(0,3)
console.log(res);
- concat:
- 语法:数组.concat(数据1, 数据2, 数据3, 数据4.......)
- 作用:将传入的数据, 合并到指定的数组中, 然后返回出来, 注意: 不会改变原数组!!!
- 返回值:合并后的数组
let arr = [1,2,3]
console.log(arr.concat(1,2,3));
console.log(arr.concat([4,5,6]));
- join:
- 语法:数组.join('连接符') 连接符如果不传递默认使用
,连接
- 作用:根据传入的连接符 将数组内的所有元素, 拼接成一个完整的字符串
- 返回值:拼接后的字符串
let arr = [1,2,3,4,5]
console.log(arr.join());
console.log(arr.join(''));
console.log(arr.join(' '));
console.log(arr.join('|'));
- forEach:
- 语法:数组.forEach(function (item, index, origin) { 遍历数组后你想要做的事 })
- 参数
- item: 数组中每一个元素
- index: 每一个元素对应的下标
- origin: 原数组
- 作用:据数组的元素内容, 循环遍历数组, 拿到数组的每一项
- 返回值:没有返回值
- 语义: 遍历数组
let arr = [1,2,3,4,5]
arr.forEach(function (item,index,origin) {
console.log(item,index,origin);
})
- map:
- 语法数组。map(function (item,index,origin) {遍历数组后你想要做的事})
- 参数
- item: 数组中每一个元素
- index: 每一个元素对应的下标
- origin: 原数组
- 作用:根据原数组映射出来一个新数组
- 返回值:是一个映射出来的新数组(需要在函数内部书写 return)
- 语义: 映射数组
let arr = [1,2,3,4,5]
let res = arr.map(function (item) {
return item * 2
})
console.log(res);
- filter:
- 语法:数组.filter(function(item,index,origin)(){})
- 作用:过滤数组
- 返回值:过滤出得内容形成一个新的数组
let arr = [1,2,3,4,5,6,7,8,9,10]
let res1 = arr.filter(function (item) {
return item % 2 === 0
})
console.log(res1);
- find:
- 语法:数组.find(function(item,index,origin)(){})
- 作用:查找数组内得数据
- 返回值:第一个满足条件得数据
let arr = [1,2,3,4,5,6,7,8,9,10]
let res2 = arr.find(function (item) {
return item > 50
})
console.log(res2);
- findIndex:
- 语法:数组.findIndex(function(item,index,origin)(){})
- 作用:查找数组内得数据
- 返回值:第一个满足条件得数据的下标
let arr = [1,2,3,4,5,6,7,8,9,10]
let res3 = arr.findIndex(function (item) {
return item > 50
})
console.log(res3);
- every:
- 语法:数组.every(function(item,index,origin)(){})
- 作用:判断数组内是否所有元素都满足条件
- 返回值:如果数组内所有元素都满足条件返回true,否则返回false
let arr = [1,2,3,4,5,6,7,8,9,10]
let res4 = arr.every(function (item) {
return item % 2 === 0
})
console.log(res4);
- some:
- 语法:数组.some(function(item,index,origin)(){})
- 作用:判断数组内是否有元素满足条件
- 返回值:如果数组内有元素满足条件返回true,没有则返回false
let arr = [1,2,3,4,5,6,7,8,9,10]
let res5 = arr.some(function (item) {
return item < 0
})
console.log(res5);
- reduce:
- 语法:数组.some(function(prev,item,index,origin)(){},init)
- 参数:
- init:随意一个值即可,可传可不传
- prev:如果init传入参数,第一次遍历prev的值是init传入的值;如果init没有传入参数,第一次遍历prev的值是数组[0]的值; 如果是第一次后续的执行, 那么他的值就是上一次遍历返回的结果
- 作用:累加器
- 返回值:累加后的结果
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let res = arr.reduce(function (prev, item, index, origin) {
return prev + item
})
console.log(res);
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let res = arr.reduce(function (prev, item, index, origin) {
return prev + item
},'')
console.log(res);