ES6常用数组方法总结(max,contant,some,every,filter,reduce,forEach,map)

2022-11-15 16:39:07 浏览数 (1)

1.求最大值(Math.max)

代码语言:javascript复制
//数组求最大值
Math.max(...[23,43,5,98,1])

//数字求最大值
Math.max(23,43,5,98,1)

都输出 98,

求最小值,Math.min同理

2.数组添加到另外一个数组的尾部(...扩展符)

把arr4添加到arr3的尾部,可以看到,只是2个数组的追加,不会合并数组,去掉重复元素

代码语言:javascript复制
let arr3 = [0, 1, 2, 3];
let arr4 = [3, 4, 5, 1, 9];
arr3.push(...arr4);
console.log(arr3)
console.log(arr4)

3.复制数组

3.1数组直接赋值

数组是复合的数据类型,直接复制的话,只是复制了指向底层数据结构的指针,而不是克隆一个全新的数组。

代码语言:javascript复制
const a1 = [1,2]
const a2 = a1
a2[0] = 2
console.log(a1)
console.log(a2)

更改a2的值,会直接影响a1的值,a2并不是a1的克隆,而是指向同一份数据的另一个指针

 3.2 es5通过concat方法进行克隆,不会影响原来数组

concat方法会直接返回数组的克隆,不会影响原来数组

代码语言:javascript复制
const a1 = [1 ,2]
const a2 = a1.concat()
a2[0] = 2
console.log(a1)
console.log(a2)

3.3 es6通过扩展字符串来实现克隆

代码语言:javascript复制
const a1 = [1, 2]
// 写法一
const a2 = [...a1];
// 写法二
const [...a3] = a1;

a2[0] = 2
console.log(a1)
console.log(a2)
console.log(a3)

4.用Object.keys清空对象的属性值

es6新增keys方法,对数组进行遍历,返回遍历器对象,keys是对键名遍历,返回key的一个数组,再通过foreach循环,清空对象的属性

代码语言:javascript复制
var param = {
    name:'may',
    age: '18'
}
var keys =Object.keys(param)

Object.keys(param).forEach(key => param[key] = '')

keys
param

5.forEach,遍历数组,无返回值,不改变原数组

 forEach遍历数组,没有返回值,不改变原数组,仅仅只是用来遍历数组,常用来注册组件,指令等

代码语言:javascript复制
var arr = [1,2,3,4]
arr.forEach((item,index,arr) => {
    console.log(item,index,arr)
})

 6.map遍历数组,返回新数组,不改变原数组

map遍历数组,返回一个新的数组,不改变原数组

代码语言:javascript复制
var arr = [1,2,3,4,5]
var brr = arr.map((item,index,arr) => {
    return item * 10
})
console.log(arr,brr)

 7.filter,过滤掉数组不符合条件的值,返回新数组,不改变原数组

filter,遍历数组,过滤掉数组中不符合条件的值,返回新数组,不改变原数组

代码语言:javascript复制
var arr = [1,2,3,4]
var brr = arr.filter((item,index,arr) => {
    return item > 2
})
brr

 8.reduce

reduce,让数组的前后两项执行方法里的条件,并返回最终计算结果,不改变原数组。函数多了一个result的参数,result是上次计算的结果,resulte默认值为第一个数组元素。

代码语言:javascript复制
var arr = [1,2,3,4]
var b = arr.reduce((result,item,index,arr) => {
    return result   item
})
b

 9 some()

some遍历数组,如果有一个元素符合条件,则返回true,并停止遍历;如果没有返回条件的元素,返回false。不改变原数组

代码语言:javascript复制
var arr = [1,3,4,5]
var b = arr.some((item,index,arr) => {
    return item  === 4
})
b

 10.every

遍历数组,如果每个元素都符合条件,那么返回true;如果有一个元素不符合条件,则返回false,并停止遍历

代码语言:javascript复制
var arr = [1,2,3,4]
var b = arr.every((item,index,arr) => {
    return item > 0
})
b

0 人点赞