我想用javascript中的键值创建新对象。
我有一个obj arrobj,如何创建具有相同键和值的对象

function createobj(arrobj){
  var newobj = Object.assign({}, ...arrobj.map(e=>Object.values(e.fields)));
  return newobj
}

var arrobj = [{
  fields: {
   service: "finance",
   country: "SG"
  }
}]


Expected Output
var newobj = {
    finance: "finance",
    SG: "SG"
}

最佳答案

您可以获取值,然后将其简化为一个以值作为键的对象:



function createobj(arrobj) {
  return arrobj
    .flatMap((e) => Object.values(e.fields))
    .reduce((p, c) => ((p = { ...p, [c]: c }), p), {});
}

var arrobj = [
  {
    fields: {
      service: "finance",
      country: "SG",
    },
  },
];

console.log(createobj(arrobj));

09-25 22:00