Javascript 用值填充键值是一个数组

标签 javascript

我想在 javasacript 中迭代 JSON 并创建类似的内容作为输出

   {
    "seriesData": [
        {
            "name": "John",
            "data": [
                5,
                3,
                4
            ]
        },
        {
            "name": "Jane",
            "data": [
                2,
                2,
                3
            ]
        },
        {
            "name": "Joe",
            "data": [
                3,
                4,
                4
            ]
        }
    ]
}

因此,我本质上需要在 for 循环内的每个键的数据数组中添加值。

输入如下: {"Records":[{"name":"Jan'10","users":[{"name":"John","y":5},{"name":"Jane", "y":2},{"name":"Joe","y":3}]},{"name":"Jan'10","users":[{"name":"John", "y":3},{"name":"Jane","y":2},{"name":"Joe","y":4}]},{"name":"10 年 1 月","users":[{"name":"John","y":4},{"name":"Jane","y":3},{"name":"Joe","y “:4}]}]};

有人可以建议如何实现这一点吗?

最佳答案

你可以尝试这样的事情:

var dataList = {};
function addData(name){
    if( dataList[name] == undefined)
        dataList[name] = [];
    for (var i = 1; i < arguments.length; i++) {
        dataList[name].push(arguments[i]);
    }

}
function packData(){
    var pack = []
    for(var e in dataList){
        pack.push({
            name: e, 
            data:dataList[e].sort(function(a,b){return a-b})
        });
    }
    return pack;
}

addData("Joe", 1);
addData("Jan", 2, 10);
addData("Joe", 3, 5, 10, 18, 500);
addData("Jan", 4);
addData("Joe", 5);
addData("Jan", 6);
console.log( packData() );

使用 addData(name, data); 将数据附加到名称,然后使用 packData() 打包该数据

编辑: Sry 切换到 PHP 一段时间...修复了脚本 XD

关于Javascript 用值填充键值是一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23458742/

相关文章:

javascript - 在 JQuery 中选择当前表单的值

javascript - 如何使用jquery获取html表中的子项数量

javascript - 语法错误: Unexpected end of input (nodejs tcp server)

javascript - 选择 div 中除单击的元素之外的所有其他元素

javascript - 如何解决同一页面多次出现api key错误

javascript - 通过 Json 存储和加载 JavaScript 变量

javascript - 为什么当我单击导航按钮时 jQuery fadeIn 和 fadeOut 不起作用?

javascript - 使用 three.js 挤压形状时出错

javascript - 方法不允许——从 Angularjs 中的请求 header 中删除 Access-Control-Request-Method

javascript - 我怎样才能让我的计时器在倒计时结束时重新加载到页面?