我如何从[[url","395868"]到此[name:"url",值:"395868"]

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"类别名称.

tri*_*cot 5

这是一些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:它是数组元素之一.通常你在这里只有一个变量(或者用逗号分隔的几个变量),但是这里我们使用"解构赋值":我们希望参数是一个数组,并希望将它的元素分配给变量xy.所以第一次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)