Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript从另一个对象创建对象_Javascript_Arrays - Fatal编程技术网

JavaScript从另一个对象创建对象

JavaScript从另一个对象创建对象,javascript,arrays,Javascript,Arrays,我有一个对象如下: const records = [ { city: "London", country: "UK" }, { city: "New York", country: "USA" } ]; 我需要从上面的对象创建另一个对象,如下所示,并具有其他属性: const metadata = [ { city: { value: &qu

我有一个对象如下:

const records = [
  {
    city: "London",
    country: "UK"
  },
  {
    city: "New York",
    country: "USA"
  }
];
我需要从上面的对象创建另一个对象,如下所示,并具有其他属性:

const metadata = [
  {
    city: {
      value: "London",
      trackChanges: true
    },
    country: {
      value: "UK",
      trackChanges: true
    }
  },
  {
    city: {
      value: "New York",
      trackChanges: false
    },
    country: {
      value: "USA",
      trackChanges: false
    }
  }
];
我感谢你的帮助

编辑1:

我尝试了下面的方法。但最后一个目标是:

records.map((record, i) => {
  for (const [key, value] of Object.entries(record)) {
    return {
      [key]: {
        value: value,
        trackChanges: false
      }
    }
  }
});

这可以使用Array.map方法实现,然后使用Object.keys在键上循环

const记录=[
{
城市:“伦敦”,
国家:“英国”
},
{
城市:“纽约”,
国家:“美国”
}
];
var results=records.map(rec=>{
var obj={};
Object.keys(rec.forEach)(key=>
obj[key]={value:rec[key],trackChanges:true}
)
返回obj;
})

控制台日志(结果)请向我们展示您创建该对象的尝试。如果您不发布非工作代码,我们将无法帮助您。这是一个对象数组,您需要使用array.map()获取输出。请看一下文档。您的返回发生在第一次迭代中,并且永远不会完成循环。这可能是一个简单的解决方案,但在这里,对象键是动态的。因此无法创建实际对象。我试了好几个小时,谢谢你的帮助。但我的对象关键点是动态的。我不能直接把城市和城市联系起来country@kukuha,我已经更新了答案。谢谢你的帮助。