Javascript - 简化为对象

标签 javascript reduce

在 Chrome 控制台中针对 Google 页面执行以下代码。

[].slice.call(document.querySelectorAll("input"))
                       .map(el => el.name?el.name:el.id)

我看到这个输出。

enter image description here

我想将此列表简化为一个对象。

         .reduce((acc,el) => acc[el] = el.toUpperCase(), {});

我期望像下面这样的东西......

            {
                "sclient":"SCLIENT",
                "site":"SITE",
                ...
            }

但它只返回最后一个元素。

enter image description here

这个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/

相关文章:

javascript - Google Analytics 电子商务实现

c# - WebClient 运行 javascript

hadoop - 解释 "There can be many keys (and their associated values) in each partition, but the records for any given key are all in a single partition"

javascript - tomcat App和数据库之间没有连接

javascript - 无法测试每个循环中检查的输入

javascript - 使用 jQuery/Ajax 投票数据库

set - 查找集合列表中的所有超集

arrays - 减少,操纵初始值

vector - Spark : value reduceByKey is not a member

common-lisp - 如何减少 Common Lisp 中的 bool 值列表?