猿问

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

如何将第一个变量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"],

}


猛跑小猪
浏览 193回答 3
3回答

慕尼黑的夜晚无繁华

您可以使用.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);

料青山看我应如是

以下是假设"@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()以前更近,我会把它留在这里以防浏览器支持很重要。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答