【发布时间】:2020-09-07 05:18:28
【问题描述】:
如何在 javascript 中将嵌套对象更改为新对象。
我有一个对象obj,如果详细信息是数组,则将第一个数组值作为javascript中的值。
function newObj(obj1) {
let map = {};
obj1.forEach(e => {
let details = e.details;
Object.values(details).forEach(value => {
if (Array.isArray(value) && value.length > 0) {
map[value[0]] = value[0];
}
else if (typeof value === 'object') {
Object.values(value).forEach(val => { map[val] = val; });
}
})
});
return map;
}
var obj1 = [
{
details : {
"info" : ["stocks", "finance", ""],
"sales" : ["analytics"]
}
}
];
var obj2 = [
{
details : {
"city" : "SG"
}
}
];
var r1 = this.newObj(obj1);
var r2 = this.newObj(obj2);
预期输出
//for obj1 (show only first value of array)
{
info : "stocks",
sales : "analytics"
}
//obj2
{
city : "SG"
}
【问题讨论】:
-
@Teemu 我已经更新了代码,谢谢回复
-
把
r1和r2放在obj1和obj2之后?为什么this.? -
obj2无效。{"SG"}是什么?你的意思是["SG"]? -
@iAmOren 感谢您的回复,更新代码
标签: javascript arrays object