我有以下内容:
const a = (...args) =>{ return {...args}}
const abc = a('lol', 'rofl', 'lmao');
console.log('abc', abc);
但是,这会打印出来
Object {0: "lol", 1: "rofl", 2: "lmao"}
但我预料到了
Object {lol: "lol", rofl: "rofl", lmao: "lmao"}
自从
{lol, rofl, lmao}
产生上面的行。
有没有办法传播论点以便我得到这个结果?
最佳答案
我认为没有任何内置方法可以做到这一点, spread syntax不会按您的预期工作。无论如何,你可以使用 Array#reduce
方法。
const a = (...args) => args.reduce((obj, v) => (obj[v] = v, obj), {})
const abc = a('lol', 'rofl', 'lmao');
console.log('abc', abc);
关于javascript - 如何在函数定义中一起使用剩余和扩展运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42837612/