如何将第一个变量npm install @angular/animations@^6.1
npm install @angular/cdk@^6.1
npm install @angular/material@^6.1
转换为entries
变量?
newEntries
答案 0 :(得分:2)
您可以将.reduce
与Object.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);
答案 1 :(得分:0)
以下是假设"@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()
要新,所以我将其保留在这里,以防浏览器支持问题。
答案 2 :(得分:0)
我看到您对这个问题有几个很差的答案(编辑:以后的答案并不差)。为了防止您被随机发送出去,您只需遍历属性即可创建一个数组,并使用硬编码的第一个条目并将属性值作为第二个属性。这是一个使用Object.fromEntries
(相当新,但易于填充)和Object.entries
(有点新,但易于填充)的示例:
let newEntries = Object.fromEntries(
Object.entries(entries).map(([key, value]) => [key, ["@babel/polyfill", value]])
);
实时示例:
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.fromEntries(
Object.entries(entries).map(([key, value]) => [key, ["@babel/polyfill", value]])
);
console.log(newEntries);
.as-console-wrapper {
max-height: 100% !important;
}
或者手动进行操作,而不是使用那些新颖的助手:
let newEntries = {};
for (const key in entries) {
if (entries.hasOwnProperty(key)) {
newEntries[key] = ["@babel/polyfill", entries[key]];
}
}
实时示例:
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 = {};
for (const key in entries) {
if (entries.hasOwnProperty(key)) {
newEntries[key] = ["@babel/polyfill", entries[key]];
}
}
console.log(newEntries);
.as-console-wrapper {
max-height: 100% !important;
}