Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组参数中的对象键值分解_Javascript_D3.js - Fatal编程技术网

Javascript 数组参数中的对象键值分解

Javascript 数组参数中的对象键值分解,javascript,d3.js,Javascript,D3.js,我试图按照d3实现Github风格的日历视图。我有点困惑的是使用的一些语法。在将{close:previous}指定为回调的第一个参数的行中,我不理解正在发生的对象分解。有人能解释一下close和previous在最里面的上下文中指的是什么吗 data = { const data = await d3.csv("https://gist.githubusercontent.com/mbostock/354a9c93174a17eb6b80f4678e3d3ae9/raw/9d20ec96a

我试图按照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
是具有以下属性的对象数组:


日期
打开
关闭
这只是重命名属性的一种方式。在您的场景中,close将重命名为previous

在最里面的上下文中,
close
指的是第二次分解中的
close
,而
previous
指的是第一次分解中的
close

根据ECMAScript 2015规范,您可以在对象解构分配中指定标识符引用,以便在冒号之后声明一个名为标识符的变量,并且该值将被放入该引用中有时称为重命名。

您甚至可以使用像
({a:b=def})=>{}
这样的初始值设定项,它将充当默认值

参见规范:

我认为“第一个”
close
将被重命名为
previous