Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.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_Arrays_Object_D3.js_Formatting - Fatal编程技术网

Javascript-重新构造对象数组

Javascript-重新构造对象数组,javascript,arrays,object,d3.js,formatting,Javascript,Arrays,Object,D3.js,Formatting,我目前有一个如下所示的对象数组: [ { "key":"CES0000000001", "25568.95655":"29923", "25568.96078":"31603" }, { "key":"CES0000000001", "25568.96501":"34480", "25568.96924":"38347" } ] [ { "ke

我目前有一个如下所示的对象数组:

[
    {
        "key":"CES0000000001",
        "25568.95655":"29923",
        "25568.96078":"31603"
    },
    {
        "key":"CES0000000001",
        "25568.96501":"34480",
        "25568.96924":"38347"
    }
]
[
    {
        "key":"CES0000000002",
        "values": [ [ 25568.95655 , 29923 ] , [ 25568.96078 , 31603 ] ]
    },

    {
        "key":"CES0000000002",
        "values": [ [ 25568.96501 , 34480 ] , [ 25568.96924 , 38347 ] ]
    }
]
我正试图找出最好的方法来重组这些数据,使其看起来像这样:

[
    {
        "key":"CES0000000001",
        "25568.95655":"29923",
        "25568.96078":"31603"
    },
    {
        "key":"CES0000000001",
        "25568.96501":"34480",
        "25568.96924":"38347"
    }
]
[
    {
        "key":"CES0000000002",
        "values": [ [ 25568.95655 , 29923 ] , [ 25568.96078 , 31603 ] ]
    },

    {
        "key":"CES0000000002",
        "values": [ [ 25568.96501 , 34480 ] , [ 25568.96924 , 38347 ] ]
    }
]
有没有人能提供一些建议,以及重构javascript对象的好资源?我将更多地使用d3.js进行可视化,数据格式是关键

我的解决办法是

    var arr= [
    {
        "key":"CES0000000001",
        "25568.95655":"29923",
        "25568.96078":"31603"
    },
    {
        "25568.96501":"34480",
        "25568.96924":"38347"
    }
];

var transformed= arr.map(function(obj){
    var result= {
        key: obj.key,
        values: []
    }

    for (var key in obj) {
      if (obj.hasOwnProperty(key) && key !== "key") {
          result.values.push([key, obj[key]]);
      }
    }
    return result;
});

console.log(transformed);
我的解决办法是

    var arr= [
    {
        "key":"CES0000000001",
        "25568.95655":"29923",
        "25568.96078":"31603"
    },
    {
        "25568.96501":"34480",
        "25568.96924":"38347"
    }
];

var transformed= arr.map(function(obj){
    var result= {
        key: obj.key,
        values: []
    }

    for (var key in obj) {
      if (obj.hasOwnProperty(key) && key !== "key") {
          result.values.push([key, obj[key]]);
      }
    }
    return result;
});

console.log(transformed);

这是我看到的一篇老文章,但我想与大家分享如何通过es6对象分解和重构来实现这一点。 如果你有一个物体

const obj1 = {
    "key":"CES0000000001",
    "25568.95655":"29923",
    "25568.96078":"31603"
};
你可以:

const restructure = ({key, ...values}) => ({key, Object.entries(values)});
const obj2 = restructure(obj1);
或者,对于阵列,您可以使用以下方法重新构造所有阵列:

const b = arr.map(({key, ...values}) => ({key, Object.entries(values)}));
或者如果您正在重用该函数

const b = arr.map(restructure);

这是我看到的一篇老文章,但我想与大家分享如何通过es6对象分解和重构来实现这一点。 如果你有一个物体

const obj1 = {
    "key":"CES0000000001",
    "25568.95655":"29923",
    "25568.96078":"31603"
};
你可以:

const restructure = ({key, ...values}) => ({key, Object.entries(values)});
const obj2 = restructure(obj1);
或者,对于阵列,您可以使用以下方法重新构造所有阵列:

const b = arr.map(({key, ...values}) => ({key, Object.entries(values)}));
或者如果您正在重用该函数

const b = arr.map(restructure);

似乎您只需在数组上循环,并使用
属性创建一些now对象。您具体停留在什么位置?第二个对象从何处获取其
?原始数据中没有显示。用第二个对象键更正了输入错误。我只是不习惯使用数组/对象,也不确定这里应该使用哪些方法。iSchluff提供了一个简单的例子来完成这项工作。谢谢似乎您只需在数组上循环,并使用
属性创建一些now对象。您具体停留在什么位置?第二个对象从何处获取其
?原始数据中没有显示。用第二个对象键更正了输入错误。我只是不习惯使用数组/对象,也不确定这里应该使用哪些方法。iSchluff提供了一个简单的例子来完成这项工作。谢谢谢谢你干净的回答。谢谢你干净的回答。