在 Chrome 控制台中针对 Google 页面执行以下代码。
[].slice.call(document.querySelectorAll("input"))
.map(el => el.name?el.name:el.id)
我看到这个输出。
我想将此列表简化为一个对象。
.reduce((acc,el) => acc[el] = el.toUpperCase(), {});
我期望像下面这样的东西......
{
"sclient":"SCLIENT",
"site":"SITE",
...
}
但它只返回最后一个元素。
这个reduce函数有什么问题吗?
最佳答案
您将返回 acc[el] = el.toUpperCase()
,这将返回 el.toUpperCase()
的值。换句话说,每次迭代都会返回一个新字符串。您需要返回您的累加器(acc):
.reduce((acc,el) => {
acc[el] = el.toUpperCase();
return acc;
}, {});
如果您有任何问题,请告诉我。
关于Javascript - 简化为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43148847/