常用数组的方法


数组的方法

常用的数组方法可大致分为两类:改变原数组的方法和不改变原数组的方法

一、改变原数组的方法

  1. Array.push() 在数组最后面添加元素,改变原数组,返回的是新数组长度
  2. Array.pop() 删除数组的最后一个元素,若数组为空,则返回undefined,改变原数组,返回的是被删除的元素
  3. Array.unshift() 在数组最前面添加元素,改变原数组,返回的是新数组的长度
  4. Array.shift() 删除数组的第一个元素,若数组为空,则返回undefined,改变原数组,返回的是被删除的元素
  5. Array.reverse() 翻转数组,改变原数组,返回翻转后的新数组
  6. Array.sort() 数组排序,括号内不写默认从小到大排序,改变原数组,返回排序后的新数组
    Array.sort((a,b)=>{b-a}),就是从大到小排序
    如果数组里面是一个个的对象,想要按照对象里面的属性来排序的话:
//按照年龄从大到小排序
    let arr1 = [
    { name: 'zs', age: 18 },
    { name: 'ls', age: 19 },
    { name: 'ww', age: 20 }
    ]
    function compare(params) {
        return function sortAge(a, b) {
            return b[params] - a[params]
        }
    }
    let newArr = arr1.sort(compare('age'))
    console.log(arr1)
    console.log(newArr)
  1. Array.splice(index,howmany,arr1,arr2…) 删除或者添加数组元素,index为开始删的索引值,howmany删除多少,arr1,arr2在index位置添加元素,改变原数组,返回被删除的数组
  2. Array.forEach() 循环遍历数组,数组有几个元素就遍历几次,第一个参数是数组中的每一个元素,第二项是索引值,第三项是整个数组,改变原数组,没有返回值(注意和map区分)

二、不改变原数组的方法

  1. Array.concat() 合并两个或多个数组,不改变原数组,返回合并后的新数组
  2. Array.join() 以特定的符号分割数组,不改变原数组,返回分割后的字符串
  3. Array.map(function) 循环遍历数组,数组有几个元素就遍历几次,第一个参数是数组中的每一个元素,第二项是索引值,第三项是整个数组,不改变原数组,返回新数组(注意和forEach区分)
  4. Array.slice() 按照条件查找数组中的元素,第一项是起始位置的索引值,第二项是查找到的位置(不包含此位置),不改变原数组,返回新数组
  5. Array.filter(function) 按照某种规则过滤数组,不改变原数组,返回符合要求的新数组
  6. Array.every(function) 数组中的每一项都符合要求则返回true,有一项不满足就返回false,不改变原数组
  7. Array.some(function) 数组中只要有一项满足要求则返回true,全都不满足则返回false,不改变原数组
  8. Array.reduce(function) 数组中的函数作为一个累加器,每一步都将当前元素的值与上一步的计算结果相加,直到没有更多的元素被相加,不改变原数组,返回累加的数值
  9. Array.indexOf() 检测当前值在数组中是否存在,如果存在则返回第一次查到的索引值,如果不存在则返回-1,不改变原数组
  10. Array.includes() 检测当前值在数组中是否存在,如果存在则返回true,否则返回false,不改变原数组

三、for…of 和 for…in 的区别

  1. for…of用于遍历数、数组对象、字符串、map、set等拥有迭代器对象(iterator)的集合
  2. for…in仅用于遍历对象
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值