Sim*_*ton -1 javascript arrays
我开始使用javascript,我觉得我没有太多的词汇来解释我的问题.我正在尝试用d3构建一个图表,这里是我需要的数据:
data=[
{x: 'A', y: 10},
{x: 'B', y: 5},
{x: 'C', y: 15}
]/>
Run Code Online (Sandbox Code Playgroud)
但是现在这就是我所拥有的 [['A',10],['B',5],['C',15]]
那么......如何合并我的数据以及如何添加"x"和"y"类别名称.
这是一些ES6代码,将一个转换为另一个:
var data = [['A',10],['B',5],['C',15]];
var result = data.map( ([x, y]) => ({ x, y }) );
console.log(result);Run Code Online (Sandbox Code Playgroud)
data.map():该map方法将遍历data(有3个元素)的每个元素,并调用您提供的函数作为参数.因此,该函数将被调用三次,并且每次将它作为参数传递给当前元素.
(...) => ....这是ES6箭头语法.它代表一个功能,但有一些不同的规则.这些差异在这个答案中没有关系,所以我不会进入那个.
[x, y]:这是由下式给出的参数map:它是数组元素之一.通常你在这里只有一个变量(或者用逗号分隔的几个变量),但是这里我们使用"解构赋值":我们希望参数是一个数组,并希望将它的元素分配给变量x和y.所以第一次x将有价值"A",并且y将会10......等等.
=>:箭头功能的箭头.以下是函数返回的表达式.
({ x, y }):括号只是为了避免与语句块混淆,语句块也以括号开头.该{ x, y }是返回的对象.在这里我们再次使用ES6语法,实际上将其解释为{ "x": x, "y": y }; 这是一个快捷符号.
因此该map方法将调用该函数三次,并且每次返回一个对象.map将这些放在一个新的数组中,并返回该数组.
以下是ES5语法中的类似代码:
var data = [['A',10],['B',5],['C',15]];
result = data.map(function(arr) {
return { x: arr[0], y: arr[1] };
});
console.log(result);Run Code Online (Sandbox Code Playgroud)