js提供的专业操作数组的方法
unshift
数组.unshift()
给数组的开头添加一个或多个元素 - 返回添加的值
shift
数组.shift()
给数组的开头删除一个元素 - 返回被删除的值
push
数组.push()
给数组的末尾添加一个或多个元素 - 返回新数组的长度
pop
数组.pop()
给数组的末尾删除一个元素 - 返回被删除的值
splice
数组.splice(要删除的元素开始的下标,删除个数,要放在删除位置的1个或多个值)
对数组进行增,删,改的方法 - 返回被删除的值组成的数组
// 删除个数为0,就是增加
// 省略删除个数,就是删除开始下标后面全部元素
concat
数组.concat()
将多个数组或元素跟当前数组合并成一个更大的数组 - 返回合并以后的大数组
sort
数组.sort()
对数组进行排序 - 不返回值,改变原数组
// 默认升序,也可以用自调用函数变降序
数组.sort()如果排序的元素大于10(十位数),会有bug
// 所以要按照下面完美的方法写
数组.sort(function(a,b) {
return a - b // 升序
return b - a // 降序
})
reverse
数组.reverse()
翻转数组 - 不返回值,改变原数组
join
数组.join(指定的连接符)
使用指定的连字符将数组元素连接成一个字符串 - 返回连接后的字符串
// 连接符为'',则字符紧贴在一起
// 连接符省略,默认使用逗号连接
slice
数组.slice(开始下标,结束下标)
截取数组 - 返回截取后的新数组
// 不包含结束下标对应的元素
数组查找索引方法
indexOf
数组.indexOf(数组元素);
查找数组中某元素第一次出现的下标,返回数组元素索引号
// 只返回第一个满足条件的索引号
// 如果在该数组找不到元素,则返回-1
lastIndexOf
数组.lastIndexOf(数组元素);
返回数组元素索引号 - 从后往前查找
检测是否为数组
instanceof
instanceof
运算符,用来检测是否为数组
var arr = [];
console.log(arr instanceof Array); // true
Array.isArray
Array.isArray(参数);
H5新增方法,ie9以上版本支持
console.log(Array.isArray(arr)); // true
遍历数组 - es5新增的数组方法
forEach
forEach // 用于遍历数组
数组.forEach(function(value,index.array) {
// value 是每次遍历出来的元素
// index 每个元素对应的下标
// array 是当前正在遍历的数组
})
// index和array是可选参数,在遍历的时候,可加可不加
// 这个方法和使用for循环遍历效果一样的,内部封装了for循环,是没有返回值的,默认 - undefined
map
map // 用于遍历数组
将每个元素都经过函数处理,处理成新的函数,将所有新的元素组成一个新的数组
数组..map(function(value,index.array) {
return newValue
})
// 让每个元素都增加30%
var arr = [10,20,30];
var brr = arr.map(function(v) {
var newValue = v + v * 0.3;
return newValue
})
console.log(brr);
filter
filter // 用于遍历数组
过滤数组,将数组中满足指定条件的元素,组成新的数组并返回
数组.filter(function(value,index.array) {
return 条件
})
var a = arr.filter(function(v){
// 它会自动遍历数组,把每一位值跟条件比较,
// 不成立的就过滤,成立的就组成新的数组并返回
return v < 60
})
console.log(a);
总结:
数组.unshift() - 开头添加一个或多个元素
数组.shift() - 开头删除一个元素
数组.push() - 末尾添加一个或多个元素
数组.pop() - 末尾删除一个元素
数组.splice() - 对数组进行增,删,改
数组.concat() - 和数组或元素合并
数组.sort() - 对数组进行排序
数组.reverse() - 翻转数组
数组.join(指定的连接符)
数组.slice(开始下标,结束下标) - 截取数组
数组.indexOf(数组元素) - 查找元素第一次出现的下标
数组.lastIndexOf(数组元素) - 从后面查找元素下标
数组.toString() - 将数组转换为字符串
数组.forEach(function(value,index.array) {})
// 遍历数组,没有返回值
数组.map(function(value,index.array) {return newValue})
// 遍历数组,将元素处理成新的函数,组成新的数组
数组.filter(function(value,index.array) {return newValue})
// 遍历(过滤)数组,将满足条件的元素,组成的新数组返回