ES6新增的一些方法和数据类型

1.新增数组方法reduce

reduce:将数组中的元素进行整合,返回一个性的内容。reduce方法一共有四个参数。

prev:上一次操作所返回的结果,没有设置默认参数的话,那么数组的第一个元素,作为数组 的第二个元素的prev。

item:当前进入的元素。

index:进入元素的索引值。

array:当前操作的数组

//数组的求和
let arr1=[40,50,70,69,80]
        let result1=arr1.reduce((prev,item)=>{
            return prev+item
        })
        console.log(result1)

上面的代码就是利用prev在没有默认参数时,会将数组的第一个元素作为第二个元素的prev。最中实现数组求和

例1:数组的去重

在处理一些其他操作,比如数组的去重,这时候我们就要用到默认参数。而默认参数的类型,我们要根据返回的值来确定。就用数组的去重为例,他最后要返回的肯定是一个数组,所以默认参数我们可以直接传一个空数组。

 let arr1=["百度","腾讯","阿里","京东","百度","腾讯","京东"]
        let result1=arr1.reduce((prev,item)=>{
            //includes():对数组进行查询是否包含该元素
            if(!prev.includes(item)){
                prev.push(item)
            }
            return prev
        },[])
        console.log(result1)

这里我们设置了默认参数,默认参数为空数组。第一次循环,空数组作为第一个prev,然后判断这个prev里面是否包含“百度”(第一个item元素),如果没有则把该元素追加到prev空数组里,返回的是一个数组,数组里面有一个元素“百度”。然后第一次循环返回的结果(也就是含有百度元素的数组)作为第二个元素的prev,然后进行相同操作。最后把返回值输出。

例2:统计字符的出现次数

首先利用reduce方法对数组进行处理,这里设置默认参数为一个空的对象,方便将统计的次数显示。然后在进行判断条件,如果对象里有当前属性,就把该属性的值加一。如果没有则把该属性加到对象中。

let arr=["a","v","v","a","w","q","w","i","o","e"]
let result1=arr.reduce((prev,item)=>{
            if(prev[item]){
                prev[item]++
            }else{
                prev[item]=1
            }
            return prev
        },{})
        console.log(result1)

2.新增字符串方法

startswith()判断字符串以什么开头,返回布尔值

endswith()判断字符串以什么结尾,返回布尔值

trim() 去除字符串前后的空格,可以利用在用户输入密码时。有的用户会在输入密码时,会多打一个空格,这时候就需要用到这个方法。增加用户体验

3.新增数据类型

     set类型:类数组,里面的元素不能重复。

        add():向set容器中添加内容

        has():查询容器中是否包含某个值

我们利用set数据类型里面的元素不能重复的特性,我们就可以实现数组的去重以及字符串的去重。

//set类型的创建,利用new来创建,所传入的参数以数组形式传入
let s1=new Set([1,2,3,4,5,5,5])
//对数组进行去重
let arr1=[1,2,3,4,5,5,5]
        let s2=new Set(arr1)
        arr=Array.from(s2)
        console.log(arr)

    map类型:可以将任意的元素,作为key。创建的方法和set创建方法一样利用new,但是map要增加属性用set(),访问用get()

//我在html页面中创建了一个按钮。
var bt1=document.getElementById("bt1")
let m=new Map()
m.set(bt1,"按钮")
console.log(m.get(bt1)

   symbol类型:创建一个独一无二的值,防止出现属性覆盖问题

let name=Symbol("姓名")
let r=Symbol("姓名")
console.log(r)
console.log(name===r)

这里的name和r虽然属性值一样,但是他们是不相等的。就是因为symbol数据类型所定义的是一个独一无二的值,不可能存在与其相等的值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值