数组方法find,includes,indexOf,reduce,findIndex,forEach,map,filter,some,every,es6新增startWith,endWith方法和用法

find:查找数组中有没有包含符合搜索条件的,有则输出此数组元素,没有则undefined

// find
var arr = [1,2,3,4]
var arr1 = arr.find(item => item === 2)
console.log(arr1)

     var arr = [{name: 'james', sex: 'man', age: 37},
         {name: 'kobe', sex: 'man', age: 19},
        {name: 'lina', sex: 'women', age: 40},
        {name: 'li men', sex: 'women', age: 19}]
    var arr1 = arr.find(e => e.name === 'james') //{age: 37,name: "james",sex: "man"}

indexof为返回在数组(字符串)中可以找到一个给定元素的第一个索引,如果不存在则返回-1。

reduce:

reduce为遍历数组进行叠加

 

 

 findIndex:

数组实例的findIndex方法的用法与find方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1

 

forEach:

forEach为遍历数组,可以理解为加强的for循环,都是对item进行遍历。

也可以新建空数组把arr的数组放进去,并且可以加入一些对item的修改:

2.map:

对forEach的遍历map也可以做到,而且map功能强大,可以对数组遍历,数据操作,而且还能不用创建新数组放进去,map直接返回的就是新数组,还可以对每个item加入key,成为键值对类型的数组。

 map修改返回的新数组,对原数组不修改,若是对原数组修改需要进行赋一下

     先创建数组(后面方法都使用此数组)

 

若是想修改item里的具体某个属性就需要先把属性修改再return出去即可。

或者写为拷贝形式都可以实现:

若是只想得到数组中对象的某一个属性则可以只返回那个属性

 若是只想改变某个属性则可以借助下标index来操作,如改变index为3的name改为true,其他改为false

注意:若是想改变单个的name,其他不变可以用

var arr2 = [{name: 'james', sex: 'man', age: 37},
    {name: 'kobe', sex: 'man', age: 19},
    {name: 'lina', sex: 'women', age: 40},
    {name: 'li men', sex: 'women', age: 19}]
var  id = 3
var arr2 = arr2.map((item,index)=>{
    // return ({
    //     ...item,
    //     name: index === id
    // })
    if (index == id){
            item.name = 'lin'
    }
    return item
})
console.log(arr2)

filter:

  filter过滤是经常在开发中用到的对数据进行处理的方法:

如:输出age大于19的数组:

var arr2 = [{name: 'james', sex: 'man', age: 37},
    {name: 'kobe', sex: 'man', age: 19},
    {name: 'lina', sex: 'women', age: 40},
    {name: 'li men', sex: 'women', age: 19}]
   var arr2 = arr2.filter((item) =>{
        // if (item.age == 19){ //因为这个判断返回的是Boolean值,所以可以直接用return简写
        //     return true
        // }
        return item.age == 19
    })
console.log(arr2)

 

 some:

遍历所有的数组,有一真则为真,有点像includes,但是some需要return,includes不需要retrue

  如some:

arr3 = arr2.some((item) =>{
    return item.sex === 'man'
})
console.log(arr3)

 includes

    var arr2 = ['man', 'women', 'sex']
    arr3 = arr2.includes('man')
    console.log(arr3, '====')

 every:

遍历所有的数组,有一假的则为假,全部为真才为真

arr3 = arr2.every((item) =>{
    return item.sex === 'man'
})
console.log(arr3)

额外提一下:

es6新增了字符串(针对字符串)用法startsWith,endWith还有去除空格的trim方法:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值