javascript - 从数组中添加 json 键

标签 javascript jquery arrays json dictionary

我正在尝试将数组项中的元素添加到 JSON,但我很难将元素传递到 JSON。

这是我的代码:

var j = {
    "Root": {
        "a": "1800,1200,3100",
        "b": "1500,1999,2001",
        "c": "40,60,50",
        "d": "this is not needed",
        "e": "nor this one"
    }
};
var root = j.Root,
    l = root.a.split(",").length,
    hash = ["a", "b", "c"];


for (var i = 0; i < l; i++) {
    for (var x = 0; x < hash.length; x++) {
        root['row_' + i] = {
            "a": root.a.split(",")[i],
            "b": root.b.split(",")[i],
            "c": root.c.split(",")[i] // I don't want to do this for each key
        };
    }
}



for (var x = 0; x < hash.length; x++) {
    delete root[hash[x]];
}

console.log(JSON.stringify(j));

我的代码可以正常工作,但我正在寻找使用数组元素的正确方法,因为我将拥有的不仅仅是 a、b、c

PS:不是所有的key都会用到

最佳答案

您可以使用 Object.keys,它会在 hash 变量中为您提供对象的键。然后,您的代码将动态检测 Root 对象中所有可能的键:

var j = {
    "Root": {
        "a": "1800,1200,3100",
        "b": "1500,1999,2001",
        "c": "40,60,50",
        "d": "152,199,21",
        "e": "15,19,200"
    }
};
var root = j.Root,
    l = root.a.split(",").length,
    hash = ["a", "b", "c"];


for (var i = 0; i < l; i++) {
    var obj = {};
    for (var x = 0; x < hash.length; x++) {
        obj[hash[x]] = root[hash[x]].split(",")[i];
    }
    root['row_' + i] = obj;
}


for (var x = 0; x < hash.length; x++) {
    delete root[hash[x]];
}
console.log(root);
console.log(JSON.stringify(j));

关于javascript - 从数组中添加 json 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49731279/

相关文章:

javascript - 如何使用jquery选择col id通过css隐藏

jquery - 尝试使用 jquery 查找图像的真实宽度

javascript - 使用 Ajax 改变点击按钮的状态

arrays - 如何在 for 循环内更新 MongoDb 文档

javascript - 我试图打印数组索引,但是我们如何在 angularjs 中以相反的顺序进行打印

php - 分离mysql获取数组结果

javascript - 引用内存可供 2 个 Controller 进行通信

javascript - chart.js - 用户添加线的最后一点

javascript - 改变 iframe src 有效果吗?

javascript - 如何使用jquery检查数组中的对象值是否已经存在