javascript - 如何在这个 2d 循环中动态创建类似的多级 JSON?

标签 javascript json multidimensional-array

我正在循环遍历二维数组["cat","dog","bird"]

在该循环中,我将如何动态构建如下所示的多级 JSON?理想的答案是构造 json 对象并将其分配给一个变量。预期的格式如下所示,您可以假设这些单词代表迭代变量,或者在相反名称属性的情况下,它是字符串连接“-”+迭代变量。

{"cat":
    {
    "name":"cat",
    "nickname":"cat",
    "oppositeName":"-cat"
    }
},
{"dog":
    {
    "name":"dog",
    "nickname":"dog",
    "oppositeName":"-dog"
    }
},
{"bird":
    {
    "name":"bird",
    "nickname":"bird",
    "oppositeName":"-bird"
    }
}

最佳答案

您可以使用给定名称及其数据来映射对象。

对于数组,您可以使用它。

var array = ["cat","dog","bird"];
    result = array.map(a => ({
        [a]: {
            name: a,
            nickName: a,
            opositeName: '-' + a
        }
    }));
    
console.log(result);

对于对象,您可以使用 Object.assignspread syntax ... .

var array = ["cat","dog","bird"];
    result = Object.assign(...array.map(a => ({
        [a]: {
            name: a,
            nickName: a,
            opositeName: '-' + a
        }
    })));
    
console.log(result);

关于javascript - 如何在这个 2d 循环中动态创建类似的多级 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46016550/

相关文章:

javascript - Javascript 中的 CSV 分隔符自动检测

javascript - PWA 是否与浏览器共享 web-push 订阅?

javascript - 如果我需要身份验证 header ,使用 jsonp 是否安全?

java - 解析 JSON 数据时不显示任何内容

json - 如何将双引号中的内容与 golang 中的正则表达式进行匹配?

javascript - 在 div 内移动图像?

javascript - Chrome 39 错误 - 输入 select() 中断滚动

c++ - 进程返回 139 (0x8B) 段错误

python - 在 Python 中旋转二维数组

javascript - 我可以通过 Javascript 中第一个元素的值来选择二维数组的第二个元素吗?