new Map,Array.from,Object.entries的作用以及使用方法

1、先看完整代码

bash 复制代码
Array.from(new Map(arr.map(item => [item.code, item])).values())

先来看看 arr.map(...)

作用:把对象数组变成「键值对数组」

例如:[{code:'1',name:'2'},{code:'2',name:'3'}]

会变成

\['1', {code:'1',name:'2'}\], \['2', {code:'2',name:'3'}

]

Map 必须接收 [key, value] 格式,所以这一步是为 Map 做准备。

2、 new Map(...) 的作用

Map 是什么?

Map 是 JS 的键值对结构,key 唯一不重复。

1、自动去重

如果有重复 code,后面的会覆盖前面的,最终只保留最后一个。

2、存储结构

以 code 为 key,整个对象为 value

执行后得到一个 Map 结构:

bash 复制代码
Map(2) {
  '1' => { code: '1', name: '2' },
  '2' => { code: '2', name: '3' }
}

3、.values() 的作用

bash 复制代码
map.values()

作用:只把 Map 里的「值」取出来

得到一个 MapIterator 迭代器(不是数组,不能直接用):

bash 复制代码
[Map Iterator] {
  { code: '1', name: '2' },
  { code: '2', name: '3' }
}

4、 Array.from(...) 的作用(核心)

Array.from(迭代器)

它的作用只有一句话:把「类数组 / 迭代器」转成真正的数组!

上面的 .values() 返回的是迭代器,不是数组,不能直接用。

Array.from 就是把它变成标准数组:

bash 复制代码
[
  { code: '1', name: '2' },
  { code: '2', name: '3' }
]

5、Object.entries

一句话:Object.entries(对象) 会把一个对象,转成 [[key, value], [key, value], ...] 这样的二维数组。

Object.entries(对象)

→ 把对象变成 [[键, 值], [键, 值]] 的数组

new Map(二维数组)

→ 接收这种结构,生成一个 Map 做去重

相关推荐
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2026-05-21
前端·人工智能·经验分享·chatgpt·html
怕浪猫2 小时前
Electron 开发实战(一):从零入门核心基础与环境搭建
前端·electron·ai编程
杜子不疼.2 小时前
【C++ AI 大模型接入 SDK】 - DeepSeek 模型接入(上)
开发语言·c++·chatgpt
加号32 小时前
【C#】 串口通信技术深度解析及实现
开发语言·c#
小鹏linux2 小时前
Ubuntu 22.04 部署开源免费具有精美现代web页面的Casdoor账号管理系统
linux·前端·ubuntu·开源·堡垒机
sycmancia3 小时前
Qt——编辑交互功能的实现
开发语言·qt
石山代码3 小时前
C++ 内存分区 堆区
java·开发语言·c++
前端若水3 小时前
会话管理:创建、切换、删除对话历史
前端·人工智能·python·react.js
Bigger4 小时前
mini-cc:一个轻量级 AI 编程助手的诞生
前端·ai编程·claude
无风听海4 小时前
C# 隐式转换深度解析
java·开发语言·c#