在javascript中使用map或reduce将二维数组转换为对象

2024-03-02

是否可以转换

[[35, "Bill"], [20, "Nancy"], [27, "Joan"]]

to

{"Bill": 35, "Nancy": 20, "Joan": 27}

使用.map() or .reduce()方法?

我可以使用以下方法转换数组:

const arr = [[35, "Bill"], [20, "Nancy"], [27, "Joan"]];

let obj = {};

for (let item of arr) {
  obj[item[1]] = item[0];
}

console.log(obj);

但我尝试使用map or reduce正在失败。有任何想法吗?


如果支持,您可以使用Object.fromEntries() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries转换数组[key, value]与一个对象配对。在这种情况下,这些对是[value, key],所以我们需要首先将它们映射到一个数组[key, value] pairs.

const arr = [[35, "Bill"], [20, "Nancy"], [27, "Joan"]];

const obj = Object.fromEntries(arr.map(([v, k]) => [k, v]));

console.log(obj);

Use Array.map() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map创建一个对象数组,其中每个对象包含一个键/值。将它们组合成一个对象传播 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax into Object.assign() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign:

const arr = [[35, "Bill"], [20, "Nancy"], [27, "Joan"]];

const obj = Object.assign(...arr.map(([v, k]) => ({ [k]: v })));

console.log(obj);

如果您需要将对象用作字典,更好的解决方案是将元组数组转换为Map https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map:

const arr = [[35, "Bill"], [20, "Nancy"], [27, "Joan"]];

const map = new Map(arr.map(([v, k]) => [k, v]));

console.log(map.get('Bill'));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在javascript中使用map或reduce将二维数组转换为对象 的相关文章

随机推荐

  • 在普通 Javascript 中以编程方式触发 keydown 事件

    我有一个事件附加到正在运行的窗口keydown 我想通过一个例程 每个间隔 以编程方式敲击键盘上的按键来测试这一点 下面的代码不起作用 但如果我实际上按下键盘上的某个键 则可以正常工作 我最初尝试过 var evt document cre
  • 使用 QToolBar 和 QListView 进行面包屑导航

    我有类似这样的 JSON 数据 books web front end html the missing manual core html5 canvas css css pocket reference css in depth js y
  • 访问分页器部分内的请求参数

    1 如何访问搜索 keyword在分页器部分内部创建友好的搜索网址 显然 将关键字作为 this gt view gt paginator gt keyword 传递是行不通的 2 目前 搜索按钮的名称也作为 param 发送 例如 当搜索
  • 在 OCaml 中编写 main 脚本?

    如何在 OCaml 中模拟这个 Python 习惯用法 if name main main See 罗塞塔代码 http rosettacode org wiki ScriptedMain Python其他编程语言的示例 Ocaml 中没有
  • 标签云大小问题

    我正在使用代码来显示基于百分比值的标签云 第一次将标签添加到我的数据库时 它看起来很大 然后相对于其他标签缩小 添加的次数越多 这是代码 private void BindTagCloud int pro id Convert ToInt3
  • PDO 插入重复密钥更新

    发布此问题后MySQL 更新或插入或死亡查询 https stackoverflow com questions 6074557 mysql update or insert or die query我已更改为使用 PDO 但在使用重复密钥
  • Q 学习代理的学习率

    学习率如何影响收敛速度和收敛本身的问题 如果学习率恒定 Q函数是否会收敛到最优值 或者学习率必须衰减以保证收敛 学习率表示解决问题所采取的步骤的大小 It 不宜太大一个数字 因为它可能会在最小值周围持续振荡 并且它不宜太小否则 将需要大量时
  • 参考Qt中的Sender对象

    我遇到了一些麻烦 我对 Qt 和 C 相当陌生 可以说是在试水 我将尝试如下描述我的问题 我有一条线编辑QLineEdit此编辑有一个如下所示的连接 connect my lineedit SIGNAL textEdited QString
  • php xpath获取属性等于的节点

    我有一个 xml 如何获取节点levelone有一个名为myatt其值为a然后访问它的myval 我尝试参考其他帖子来使其工作 但它似乎不起作用我的 xpath 有什么问题 this gt myXmlObj gt xpath levelon
  • 翻转视图 iPhone

    请考虑下面的代码 并告诉我我做错了什么 我想在两个 UIView 之间切换 不知何故 当我从初始视图翻转时 我只是得到翻转的视图 没有动画 当我向后翻转时 动画显示得很好 翻转是由视图本身上的按钮触发的 IBAction showMoreI
  • [UIAlertView 显示] 如何工作?

    我想做一些类似于 UIAlertView 的事情 即 不引用任何 UIView 或 UIViewController 使用presentModalViewController 在所有窗口顶部呈现一个 UIViewController 查看文
  • vim,将 script.py 粘贴到 python 解释器会丢失格式

    我正在尝试使用 ConqueTerm 重新映射一个键 以将脚本中选定的文本拉入 放入 Python 解释器中 一切都很好 除了这个 def main print Testing 123 main 变成这样 gt gt gt def main
  • 当数据为0时,如何使chartJs堆叠条形始终四舍五入?

    我想出了这个小提琴 https jsfiddle net 2s09hqLu https jsfiddle net 2s09hqLu 它按照我想要的方式堆叠了圆形图表 但问题是当数据数组中的值为 0 时 它不会使其四舍五入 我总是希望它四舍五
  • python中的连续字母列表并获取它的每个值

    我遇到了几乎同样的问题 如何制作连续的字母列表Python 从a z然后从aa ab ac等 https stackoverflow com questions 29351492 how to make a continuous alpha
  • 放大后删除绘制的矩形缩放框

    我正在尝试编写一个透明的可拖动矩形缩放框 一旦鼠标再次抬起 它就会放大该区域并删除绘制的矩形 我已经可以进行缩放并绘制矩形 但是我不能 1 弄清楚如何使其透明 和 2 弄清楚如何在放大后删除矩形 一旦单击鼠标在放大的图像上绘制另一个缩放框
  • 错误:请求失败,状态代码为 405

    我正在尝试在 Laravel React js 组合中建立 axios 示例 我通过以下命令配置了我的项目 作曲家创建项目 prefer dist laravel laravel react laravel basic 8 php arti
  • 使用for循环遍历java中的列表

    如何使用索引迭代列表数据结构 例如 考虑一个列表形式的句子 每个元素都是一个单词 我可以使用索引逐步浏览每个单词吗 像这样的事情 sentence defined something like this List
  • Django、ModelChoiceField() 和初始值

    我正在使用这样的东西 field1 forms ModelChoiceField queryset 如何使我的表单显示所选的值 如果你想设置默认的初始值 你应该定义initial http docs djangoproject com en
  • 如何将字体精美的图标放入选择下拉菜单中?

    我一直在努力在 vuejs 的选择下拉菜单中设置一个很棒的字体图标 我尝试过一些方法 比如
  • 在javascript中使用map或reduce将二维数组转换为对象

    是否可以转换 35 Bill 20 Nancy 27 Joan to Bill 35 Nancy 20 Joan 27 使用 map or reduce 方法 我可以使用以下方法转换数组 const arr 35 Bill 20 Nancy