为了账号安全,请及时绑定邮箱和手机立即绑定

如何从另一个对象创建对象 JavaScript

如何从另一个对象创建对象 JavaScript

猛跑小猪 2021-06-29 15:16:01
如何将第一个变量entries转换为newEntries变量?let entries = {  "app": "/main/application/src/app/src/pages/app/src/index.js",  "app1": "/main/application/src/app/src/pages/app/src/app1.js",  "app2": "/main/application/src/app/src/pages/app/src/app2.js"}let newEntries = {  //from entries should be that:  app: ["@babel/polyfill", "/main/application/src/app/src/pages/app/src/index.js"],  app1: ["@babel/polyfill", "/main/application/src/app/src/pages/app/src/app1.js"],  app2: ["@babel/polyfill", "/main/application/src/app/src/pages/app/src/app2.js"],}
查看完整描述

3 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

您可以使用.reducewithObject.entries来实现这一点。首先,Object.entries将在您的entries对象中为您提供一组键值对:


[["app", "/main/application/src/app/src/pages/app/src/index.js"], ...]

然后,您可以使用.reduce来构建一个新对象,该对象获取上述数组的每个内部数组(即:获取每个键值)并将其添加到新对象中。但是,新对象的值是一个包含当前值和字符串的数组"@babel/polyfill"。


见下面的实现:


let entries = {

  "app": "/main/application/src/app/src/pages/app/src/index.js",

  "app1": "/main/application/src/app/src/pages/app/src/app1.js",

  "app2": "/main/application/src/app/src/pages/app/src/app2.js"

}


const arr_res = Object.entries(entries).reduce(

                  (acc, [k, v]) => ({...acc, [k]: ["@babel/polyfill", v]}),

                {});

console.log(arr_res);


查看完整回答
反对 回复 2021-07-08
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

以下是假设"@babel/polyfill"不变但很容易更改的快捷方式。


let entries = {

  "app": "/main/application/src/app/src/pages/app/src/index.js",

  "app1": "/main/application/src/app/src/pages/app/src/app1.js",

  "app2": "/main/application/src/app/src/pages/app/src/app2.js"

};


let newEntries = Object.keys(entries).map(key => [key,["@babel/polyfill", entries[key]]])

                                     .reduce((a,c) => {a[c[0]] = c[1]; return a},{});


console.log(newEntries);

如果我没记错的话,Object.entries()它比Object.keys()以前更近,我会把它留在这里以防浏览器支持很重要。


查看完整回答
反对 回复 2021-07-08
  • 3 回答
  • 0 关注
  • 192 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信