我正在尝试遵循d3 tutorial来实现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
答案 0 :(得分:2)
在最里面的上下文中,+------+------+------+------+------+
| Co1 | Col2 | Col3 | Col4 | Col5 |
+------+------+------+------+------+
| A | 1234 | 9765 | 1 | |
| A | 1235 | 9765 | 2 | |
| 1235 | 9765 | 3 | | |
| A1 | 789 | 4567 | 9764 | 4 |
| 9764 | 5 | | | |
| A2 | 3453 | 4568 | 9764 | 6 |
+------+------+------+------+------+
在第二次销毁中指的是close
,而close
在第一个销毁中指的是previous
。
根据ECMAScript 2015规范,您可以在对象解构分配中指定标识符引用,因此可以在冒号后声明一个名为标识符的变量,并将该值放入该引用中。 有时称为重命名。
您甚至可以使用诸如close
之类的初始值设定项。
答案 1 :(得分:0)
这只是重命名属性的一种方式。在您的方案关闭中被重命名为以前的。