javascript - 将键分配给 JSON 对象

标签 javascript json

我有一个像这样的 JSON 对象

{
    "headings": [
        "col1",
        "col2",
        "col3",
        "col4",

    ],
    "rows": [
        [
            {
                "a": "abc",
                "b": def,
            },
            value1,
            value2,
            value3

        ],
        [
            {
                "a": "abc",
                "b": def,
            },
            value1,
            value2,
            value3

        ],
    ]
}

我想像这样将标题转换为对象行的键

{
    "rows": [
        [
            "col1": {
                "a": "abc",
                "b": def,
            },
            "col2": value1,
            "col3": value2,
            "col4": value3

        ],
        [
            "col1": {
                "a": "abc",
                "b": def,
            },
            "col2": value1,
            "col3": value2,
            "col4": value3

        ],
    ]
}

我看了https://lodash.com/我没有找到任何方法来做到这一点,所以 如果有一个简单的功能/代码可以做到这一点,有人可以帮忙吗?提前致谢!

最佳答案

您可以构建新条目并创建对象。

var data = { headings: ["col1", "col2", "col3", "col4"], rows: [[{ a: "abc", b: "def" }, "value1", "value2", "value3"], [{ a: "abc", b: "def" }, "value1", "value2", "value3"]] },
    rows = data.rows.map(a => Object.fromEntries(data.headings.map((k, i) => [k, a[i]])));

console.log({ rows });
.as-console-wrapper { max-height: 100% !important; top: 0; }

用 lodash 的

var data = { headings: ["col1", "col2", "col3", "col4"], rows: [[{ a: "abc", b: "def" }, "value1", "value2", "value3"], [{ a: "abc", b: "def" }, "value1", "value2", "value3"]] },
    rows = _.map(data.rows, a => _.fromPairs(_.zip(data.headings, a)));

console.log({ rows });
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>

关于javascript - 将键分配给 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59811238/

相关文章:

javascript - 为什么 setAttribute 在 jQuery 的 attr 不起作用时起作用

javascript - 服务器生成的具有长帖子内容的 PDF angularjs

javascript - 从任意深度的父/子关系中的所有对象中删除特定属性

javascript - 基本 React Router 示例不起作用

javascript - 避免 namespace 污染的模式

javascript - 以表单形式发送 ng Repeat 中的所有值

javascript - 如何使用 lodash map/countBy/groupBy 处理 JSON 字段?

python - 如何在python中的列表中创建列表

javascript - 在显示 JavaScript 中的绑定(bind)属性之前对其进行格式化

asp.net-mvc - 使用 JSON、JQuery 将复杂对象数组发布到 ASP.NET MVC Controller