数组
表格中arr代表一个数组
操作 | 作用 | 解释 |
---|---|---|
arr.push(" ") | 尾插 | arr修改,返回新数组的长度 |
arr.pop() | 尾删 | arr修改,返回被删除的项 |
arr.unshift() | 前插 | arr修改,返回新数组的长度 |
arr.shift() | 前删 | arr修改,返回被删除的项 |
arr.concat(arr1,arr2) | 合并 | arr不修改,返回合并后的数组 |
arr.join(“+”) | 将数组元素用指定字符拼接成字符串 | arr不修改,返回字符串(“+”代表指定字符,可更换) |
arr.includes(“a”) | 判断数组是否包含制定的值 | arr不修改,返回 true 或 false |
arr.indexOf(“a”,index) | "a"在数组中首次出现的下标 | arr不修改,返回指定字符首次出现的下标,不存在返回-1,index代表从某个下标开始查找,不写,默认0 |
arr.reverse() | 反转原数组元素顺序 | arr修改 |
arr.slice(startIndex,endIndex) | 截取 | arr不修改,返回新数组,下标含头不含尾 |
arr.splice(startIndex,count,“”) | 插入/删除 | arr修改,返回删除项,三个参数(开始下标,删除多少项,插入值) |
带回调函数的数组方法:
1. arr.sort(function (a,b){
return a-b; //a-b升序、b-a降序
})
// 修改原数组,默认比较字符串
2. arr.forEach(function(value,index,arr){//数组的遍历
// value-----每一项,index-----下标,arr-----数组
sum+=value;//求数组的和
})
4. arr.map(function(value,index,arr){// 映射,不改变arr
return (value*1.3)+10;//通过指定函数对每个元素进行操作
})
5. arr.filter(function(value,index,arr){// 过滤,不改变arr
return value<10;// 过滤符合条件的值,并以数组的形式返回
})
6. arr.some(function(value,index,arr){// 不改变arr,只要有一个满足就为true
return value>10;// 判断数组中是否存在满足条件的值,遇到true停止,返回布尔值
})
7. arr.every(function(value,index,arr){// 不改变arr,只要有一个不满足就为false
return value>10;// 判断数组中是否都满足条件的值,遇到false停止,返回布尔值
})
8. arr.reduce(function(total,value,index,arr){// 将数组元素计算为一个值
total+=value;
return total;
},0)// 设置total的初始值为0,不传默认值的话,会将第0项作为默认值,也可以为空数组,空对象,“”
变异数组:(修改原数组)
pop
、push
、shift
、unshift
、splice
、sort
、reverse
非变异数组:(不修改原数组)
concat
、some
、every
、reduce
、slice
、filter
、reduce
数组对象去重:
handleUnique(arr, key) {
// arr 需要去重的数组 type:作为去重依据的key
const res = new Map();
return arr.filter((arr) => !res.has(arr[key]) && res.set(arr[key], 1))
}