javascript - 数组参数中的对象键值解构
问题描述
我正在尝试按照 d3教程来实现 Github 样式的日历视图。我有点困惑的是使用的一些语法。在 {close: previous} 被指定为回调的第一个参数的那一行,我不明白正在发生的对象解构。有人可以解释一下在最里面close
的previous
上下文中指的是什么吗?
data = {
const data = await d3.csv("https://gist.githubusercontent.com/mbostock/354a9c93174a17eb6b80f4678e3d3ae9/raw/9d20ec96a40cc3fd5b8ddc9a306bd7397d5cfd16/dji.csv", d3.autoType);
return d3.pairs(data, ({close: previous}, {date, close}) => {
return {date, value: (close - previous) / previous};
});
}
顺便说一下,data
是一个具有以下属性的对象数组:
date
, open
, high
, low
, close
,volume
解决方案
在最里面的上下文中,在第二个解构close
中指代,在第一个解构中指代。close
previous
close
根据 ECMAScript 2015 规范,您可以在对象解构赋值中指定标识符引用,因此您可以在冒号后声明一个名为标识符的变量,并将值放入该引用中。有时它被称为重命名。
您甚至可以使用({a: b = def}) => {}
将充当默认值的初始化程序。
推荐阅读
- azure-devops - Azure DevOps - 具有多个作业语法错误的 YAML 管道
- javascript - 将函数中的逻辑应用于最初不在 HTML 脚本中的新创建的 HTML
- tensorflow - 在尝试对 keras 模型进行全整数量化时获得“运行时错误:预期的偏差张量是一个向量”
- html - 导航栏中的引导搜索栏与过渡
- powershell - 从应用程序池用户提升权限运行 powershell 脚本
- ruby-on-rails - 具有 HTTParty 和解析/访问响应的 Noob
- python - pyspark:将一列数组解压缩成多列更有效?
- vba - 使用VBA IE,如何运行javascript?
- pine-script - pivothigh() 和 pivotlow() 函数如何在 Tradingview Pinescript 上工作?
- java - 如何使用 Electron 通过 JDBC 连接到 MySQL 数据库