如何解决如何通过在javascript中键入修改现有的数组对象
我想知道如何通过在javascript中键入来修改数组对象, 我有一个对象,如果只将数组更改为如下所示,则字段类型为javascript(忽略始终是最后一个元素的图像)
function modifyObject(ob){
var result = ob.map(e=>{
Array.isArray(e.fields) ? e.fields.map(i=>({i:i}) :
Object.assign({},...ob.map(elm=>(elm.fields)));
}
)
}
var r1 = this.modifyObject(obj1);
var r2 = this.modifyObject(obj2);
var obj1=[
{
fields: {"cn":"IN"},id: 0,group: "Active"
}
]
var obj2 =[
{
fields: ["city","name","img.jpg"],group: "Active"
}
]
预期输出:
//if fields type is array
{
fields: {city:"city",name:"name"}
}
//if fields type is object
{
fields: {"cn":"IN"}
}
解决方法
问题是您的obj1和obj2不是对象,它们的数组分别包含一个对象。 ModifyObj必须接收myObj [0],或者您可以像我一样修改它:
function modifyObject(myObj) {
let modifiedObj = myObj;
if (Array.isArray(modifiedObj.fields)) {
let objFields = {};
modifiedObj.fields.forEach(field => objFields[field] = field);
modifiedObj.fields = objFields;
}
return modifiedObj;
}
var obj1 = {
fields: {"cn":"IN"},id : 0,group : "Active"
};
var obj2 = {
fields: ["city","name","img.jpg"],group : "Active"
};
var r2 = modifyObject(obj2);
console.log(r2);
让我知道是否不清楚。 如果有帮助,请给我+ rep。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。