ES6语法_var、let 、 const、解析表达式、模板字符串、箭头函数、map 、reduce、Object优化(三)

简介: ⑤. map和reduce⑥. 对象(Object)优化

⑤. map和reduce


①. map接收一个函数,将原数组中的所有元素用这个函数处理后放入新数组返回


②. reduce接收两个参数:


带两个参数的一个函数(必须):从头开始每次用两个数组元素执行 第一个元素和第二个元素先执行执行完后返回一个结果又和第三个数组元素执行以此类推


起始参数(非必须):即有该参数的话 将用该参数和数组第一个元素执行 返回结果再和第二个元素执行 以此类推


    <script>
        //map接收一个函数,将原数组中的所有元素用这个函数处理后放入新数组返回
        //举例:有一个字符串数组,希望转为int数组
        let arr = ['1','20','-5','3'];
        console.log("处理前数组的是:"+typeof arr[0]);//处理前数组的是:string
        /*使用map对数组进行处理*/
        arr=arr.map(s=>parseInt(s));
        console.log("处理后数组是:"+typeof arr[0]);//处理后数组是:number
    </script>


②. reduce()为数组中每一元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素


       //reduce
        let arr2=[1,3,5,7]
        //1.没有初始值的情况下
        /*
        a:上一次调用函数的值或者初始值,如果没有指定初始值,默认从数组第一个元素开始
        b:数组中当前被处理的元素
        */
        let sum=arr2.reduce((a,b)=>{
            console.log("上一次处理后:"+a);
            console.log("当前正在处理:"+b);
            return a+b
        })
        /*
        上一次处理后:1 
        当前正在处理:3 
        上一次处理后:4 
        当前正在处理:5 
        上一次处理后:9 
        当前正在处理:7 
        当前计算结果是:16
        */
        console.log(`当前计算结果是:${sum}`)
        //2. 指定初始值
        /*
        上一次处理后:100 
        当前正在处理:1 
        上一次处理后:101 
        当前正在处理:3 
        上一次处理后:104 
        当前正在处理:5 
        上一次处理后:109 
        当前正在处理:7
        */
        let sum2=arr2.reduce((a,b)=>{
            console.log("上一次处理后:"+a);
            console.log("当前正在处理:"+b);
            return a+b
        },100)


⑥. 对象(Object)优化


①. Object.keys(obj):获取对象的所有key形成的数组


②. Object.values(obj):获取对象的所有value形成的数组


③. Object.entries(obj):获取对象的所有key和value形成的二维数组。格式:[[k1,v1],[k2,v2],…]


④. Object.assign 方法的第一个参数是目标对象,后面的参数都是源对象


    <script>
     let obj={name:"tangzhi",age:24};
     //1.获取对象的所有key形成的数组
     console.log(Object.keys(obj));//Array [ "name", "age" ]
     //2.获取对象的所有value形成的数组
     console.log(Object.values(obj));//Array [ "tangzhi", 24 ]
     //3.获取对象的所有key和value形成的二维数组。格式:[[k1,v1],[k2,v2],…]
     console.log(Object.entries(obj));//Array [ [ "name", "tangzhi" ],[ "age", 24 ] ]
     let a = { name: "TANGZHI" };
     let b = { age: 25 };
     let c = { gender: "男" };
     //Object { name: "TANGZHI", age: 25, gender: "男" }
     console.log(Object.assign(a, b, c));
    </script>
相关文章
|
存储 机器学习/深度学习 缓存
🚀 力扣热题 394:字符串解码(详细解析)(Go语言版)
文章提供了两种解法:栈结构和递归解法。栈解法通过维护数字栈与字符串栈,依次处理 `[` 和 `]`,构造解码结果;递归解法则利用函数调用逐层解析嵌套结构。两者时间复杂度均为 $O(n)$,空间复杂度也为 $O(n)$。栈解法直观易懂,适合初学者;递归解法优雅简洁,适合处理深度嵌套规则。掌握这两种方法,可灵活应对类似问题,提升解题能力。
627 11
|
自然语言处理 算法 搜索推荐
字符串相似度算法完全指南:编辑、令牌与序列三类算法的全面解析与深入分析
在自然语言处理领域,人们经常需要比较字符串,这些字符串可能是单词、句子、段落甚至是整个文档。如何快速判断两个单词或句子是否相似,或者相似度是好还是差。这类似于我们使用手机打错一个词,但手机会建议正确的词来修正它,那么这种如何判断字符串相似度呢?本文将详细介绍这个问题。
1488 1
|
存储 关系型数据库 MySQL
|
SQL 开发框架 前端开发
在C#开发中使用第三方组件LambdaParser、DynamicExpresso、Z.Expressions,实现动态解析/求值字符串表达式
在C#开发中使用第三方组件LambdaParser、DynamicExpresso、Z.Expressions,实现动态解析/求值字符串表达式
|
JavaScript 前端开发 开发者
JavaScript中的const关键字解析
JavaScript中的const关键字解析
599 2
|
SQL 自然语言处理 前端开发
【JavaScript】ECMAS6(ES6)新特性概览(一):变量声明let与const、箭头函数、模板字面量全面解析
【JavaScript】ECMAS6(ES6)新特性概览(一):变量声明let与const、箭头函数、模板字面量全面解析
272 2
|
存储 算法 数据挖掘
深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)
深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)
|
SQL 存储 JSON
Hive 解析 JSON 字符串数据的实现方式
Hive 提供 `get_json_object` 函数解析 JSON 字符串,如 `{&quot;database&quot;:&quot;maxwell&quot;}`。`path` 参数使用 `$`、`.`、`[]` 和 `*` 来提取数据。示例中展示了如何解析复杂 JSON 并存储到表中。此外,Hive 3.0.0及以上版本内置 `JsonSerDe` 支持直接处理 JSON 文件,无需手动解析。创建表时指定 `JsonSerDe` 序列化器,并在 HDFS 上存放 JSON 文件,可以直接查询字段内容,方便快捷。
2161 3
|
SQL 自然语言处理 JavaScript
【JavaScript】ECMAS6(ES6)新特性概览(一):变量声明let与const、箭头函数、模板字面量全面解析
ES6,作为ECMAScript 2015的简称,标志着JavaScript编程语言的一个重要进化节点。它不是渐进的变化,而是一次飞跃式的更新,为开发者带来了一系列强大的新特性与语法糖,极大提升了代码的简洁性、可读性和运行效率。从新的变量声明方式let与const,到优雅的箭头函数、模板字符串,再到让对象操作更为灵活的解构赋值与增强的对象字面量,ES6的每项改进都旨在让JavaScript适应日益复杂的应用场景,同时保持其作为脚本语言的活力与魅力。本文是深入探索这些核心特性的起点,为你铺开一条通向高效、现代JavaScript编程实践
304 0

热门文章

最新文章

推荐镜像

更多
  • DNS