首页 > 编程语言 >【查漏补缺】javascript中逗号操作符的拓展用法

【查漏补缺】javascript中逗号操作符的拓展用法

时间:2022-09-22 16:44:57浏览次数:70  
标签:pre 查漏 javascript reduce arr 逗号 item key

  1.背景:今天看Vue3文档,发现一个网格案例中有一段 reduce的写法和作用如下:

  • arr.reduce((o, key) => ((o[key] = 1), o), {})
    //  目的 ==> 将 [ "name","power"] 转换为 { name:1,power:1 }
  • 发现这里的回调返回值部分((o[key] = 1), o)不是很懂,后来查阅资料发现是逗号操作符的扩展用法,作此记录,先来看红宝书的相关介绍

  • 这里就用到了这个“并不多见”的用法,根据定义,上面的代码也就相当于以下展开:

  • arr.reduce((o, key) => ((o[key] = 1), o), {})
    // 相当于:
    arr.reduce((o, key) => { o[key] = 1; return o }, {})
    // 这里的((o[key] = 1), o)即以逗号操作,执行左边(o[key] = 1),返回右边o

    2.举个例子,借助这个用法,在某些场景就可以简化代码,比如有如下需求:

  • // 现有数组
    let arr=[{id:'1',value:'one'},{id:'2',value:'two'}]
    // 将其转换为对象形式:{ 1:'one',2:'two' }
    // 这里用reduce无疑最合适,正常我们一般会这样写:
    arr.reduce((pre, item) => {
      pre[item.id] = item.value;
      return pre
    }, {})
  • 而如果借助逗号操作符,就可以有效缩减代码,一行搞定:

  • arr.reduce((pre, item) => ((pre[item.id] = item.value), pre), {})

     

标签:pre,查漏,javascript,reduce,arr,逗号,item,key
From: https://www.cnblogs.com/Mochenghualei/p/16719858.html

相关文章

  • JavaScript 函数定义
    JavaScript使用关键字 function 定义函数。函数可以通过声明定义,也可以是一个表达式。函数声明:函数声明后不会立即执行,会在我们需要的时候调用到。functionmyFunct......
  • JavaScript 的“this”关键字解释和揭秘
    JavaScript的“this”关键字解释和揭秘这这个关键字是一把双刃剑——它可能是复杂错误的来源——一旦你知道它是如何工作的,它也可以让你作为开发人员的生活更轻松。这......
  • 如何使用 JavaScript 解决二进制间隙
    如何使用JavaScript解决二进制间隙在编码训练营4个月后,我决定开始做数据结构和算法问题,为我的技术面试做准备。我使用的一些网站是:可编码性黑客等级有什么比......
  • JavaScript 进阶
    JavaScriptJavaScript是一种运行在客户端的脚本语言。运行过程由js引擎来逐行解析并执行。用处:表单动态验证、网页特效、服务端开发(Node.js)、桌面程序(Electron)......
  • javascript的void
    void 关键字:该操作符指定要计算一个表达式但是不返回值。href="#"与href="javascript:void(0)"的区别# 包含了一个位置信息,默认的锚是#top 也就是网页的上端。而jav......
  • JavaScript JSON
    JSON是用于存储和传输数据的格式。JSON通常用于服务端向网页传递数据。JSON是一种轻量级的数据交换格式。JSON语法规则数据为键/值对。数据由逗号分隔。大括......
  • [javascript] js如何获取浏览器的语言
    当想要实现多语种时,需要获取浏览器的当前语言最直接的,就是访问浏览器内置的 navigator.language 属性:varlang=navigator.language 根据你的浏览器的设置,这段代码......
  • javascript: 复制数组时的深拷贝及浅拷贝(chrome 105.0.5195.125)
    一,js代码:<html><head><metacharset="utf-8"/><title>测试</title></head><body><buttononclick="assignCopy()">无效:变量直接赋值</button><br/><br......
  • javaScript 字符串方法,字符串搜索,
     //这是字符串 能够使用单引号或双引号    varmko='helloworedw'    varqwe="hello worasd"    //new 一个字符串   ......
  • 跟我学 JavaScript-VII
    跟我学JavaScript-VIIJavaScript(JS)中的While循环JavaScript系列的第-7天,今天我们将学习While循环如果您是本系列的新手,请查看上一部分—(关联)循环为什么......