在JavaScript中,你可以使用Object.fromEntries()
和Map
来将一个函数数组转换为一个对象,其中键是函数的名称,值是函数的返回值。以下是一个示例代码:
// 假设我们有一个函数数组
const functions = [
{ name: 'func1', func: () => 'value1' },
{ name: 'func2', func: () => 'value2' },
{ name: 'func3', func: () => 'value3' }
];
// 使用 Object.fromEntries() 和 Map 来转换
const functionsObj = Object.fromEntries(
functions.map(({ name, func }) => [name, func()])
);
console.log(functionsObj);
// 输出: { func1: 'value1', func2: 'value2', func3: 'value3' }
Object.fromEntries()
和Map
可以使代码更加清晰和易读。Object.fromEntries()
和Map
无法直接处理。你需要使用Promise.all()
来等待所有异步函数执行完毕。// 假设我们有一个异步函数数组
const asyncFunctions = [
{ name: 'asyncFunc1', func: async () => 'value1' },
{ name: 'asyncFunc2', func: async () => 'value2' },
{ name: 'asyncFunc3', func: async () => 'value3' }
];
// 使用 Promise.all() 来处理异步函数
(async () => {
const results = await Promise.all(asyncFunctions.map(async ({ name, func }) => [name, await func()]));
const asyncFunctionsObj = Object.fromEntries(results);
console.log(asyncFunctionsObj);
// 输出: { asyncFunc1: 'value1', asyncFunc2: 'value2', asyncFunc3: 'value3' }
})();
希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云