【发布时间】:2020-12-20 03:58:12
【问题描述】:
我想知道如何根据 javascript 中的键将嵌套数组对象更改为对象
我有对象obj1 和obj2,根据item 的键类型更改对象。
function changeObj(obj){
let result = obj.reduce(function (acc, item) {
if(item.items.trim() !== "" && item.key.trim() !== ""){
acc[item.key] = item.items
return acc
}
return acc
}, {});
return result;
}
let result = this.changeObj(obj2)
var obj1 = [
{ id:0, items:["SG","AU"], count: 2, key:"countries"},
{ id:1, items:["finance"], count: 3 key:"info"}
]
var obj2 = [
{ id:0, items: "SG", key: "country"},
{ id:1, items: "details", key: "info"}
]
Expected Output:
// if items key is array
{
fields: {
countries: ["SG","AU",2],
info: ["finance",3]
}
}
//if items key is string
{
fields: {
country: "SG",
info: "details"
}
}
【问题讨论】:
-
那么你到底是哪里出了问题?
-
@charlietfl 感谢回复,如果项目键是数组,则不起作用
-
所以你需要另一个
if(Array.isArray(item.items))的条件
标签: javascript jquery arrays object