我正在循环遍历二维数组["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.assign
与 spread 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/