微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将嵌套数组中的特定键更改为javascript中的对象

如何解决将嵌套数组中的特定键更改为javascript中的对象

如果对象中的fields键是数组,则将数组的第一个值更改为javascript中的键值对对象。

insert into ceny_min2(id,idt,kod_k,nrdok,data_z,odczytano,ost_update,cena_min) 
select distinct on (idt) id,cena_min
from cenymin c
order by idt,id

预期产量

var obj =
[
  { id:1,fields:["item","2","list"]},{ id:2,fields:["sample","1","check"]}
]
function newObj(obj) {
        let objFields = {};
        modifiedobj.fields.forEach(field => objFields[field] = field);
        modifiedobj.fields= objFields;
        return modifiedobj; 

}
var result = this.newObject(obj)

解决方法

尝试一下:

var obj =
[
  { id:1,fields:["item","2","list"]},{ id:2,fields:["sample","1","check"]}
]
function newObject(obj) {
        let objFields = {};
        obj.forEach(e => {
          if(e.fields && e.fields.length>0)
            objFields[e.fields[0]] = e.fields[0];
        });
        return objFields; 
}
var result = this.newObject(obj);
console.log(result);

,

这是一种利用Object.assign()spread operatorArray.map()创建所需对象的功能方法。

const input = [
    { id: 1,fields: ["item","list"] },{ id: 2,fields: ["sample","check"] }
];

const process = (input) => (Object.assign(...input.map(({ fields }) => (
    fields.length ? { [fields[0]]: fields[0] } : {}
))));

console.log(process(input));

,

您的代码段很近,您只需要清理变量名,然后使用map也会使其更整洁:

const obj = [
  {id: 1,{id: 2,"check"]}
]

function newObj(inputArray) {
  let outputObject = {};
  inputArray.map(item => item.fields[0])
            .forEach(field => outputObject[field] = field);
  return outputObject;
}

var result = newObj(obj)

console.log(result)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。