ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 甲级困户

[求助] WPS JS宏中数据上万行时想匹配到A数组在B数组中的值,是否能用映射或map之类快速迭...

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-12-8 10:13 | 显示全部楼层
lizhipei78 发表于 2024-12-8 09:31
想问一下大佬,new Map 与Object相比,究竟有什么优势,目前就我本人使用体验来说,new Map完全可以用Obj ...

按我这个写法,主要是object不一定能保证插入的顺序 导出的时候数据会乱 我就用map了

TA的精华主题

TA的得分主题

发表于 2024-12-8 10:25 | 显示全部楼层

请问一下 i=p[a]??=p.push([a])-1 是表示的什么意思? p是数组 又不是字典 数组[a] a表示的是订单号

TA的精华主题

TA的得分主题

发表于 2024-12-8 10:27 | 显示全部楼层
本帖最后由 yu3924 于 2024-12-8 10:34 编辑
cjc209 发表于 2024-12-8 10:25
请问一下 i=p[a]??=p.push([a])-1 是表示的什么意思? p是数组 又不是字典 数组[a] a表示的是订单号

这是把数组当Object用了 因为是a是字符串而不是数字所以变成了数组的一个属性,数组本身就是一个对象就是有点特殊,只要[]写入字符串就是当Object使用了

TA的精华主题

TA的得分主题

发表于 2024-12-8 10:45 | 显示全部楼层
yu3924 发表于 2024-12-8 10:27
这是把数组当Object用了 因为是a是字符串而不是数字所以变成了数组的一个属性,数组本身就是一个对象就是 ...

这里面这么一长串的数字符,不会当数字的,我想数组不会有这么大,所以它默认当字符串了,当然保守点还是转一下比较好

TA的精华主题

TA的得分主题

发表于 2024-12-8 11:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
image.png

TA的精华主题

TA的得分主题

发表于 2024-12-8 12:24 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-12-8 16:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
yu3924 发表于 2024-12-8 10:27
这是把数组当Object用了 因为是a是字符串而不是数字所以变成了数组的一个属性,数组本身就是一个对象就是 ...

这句还是没有理解,请详细解释一下好吗?

TA的精华主题

TA的得分主题

发表于 2024-12-8 22:17 | 显示全部楼层
lizhipei78 发表于 2024-12-8 09:31
想问一下大佬,new Map 与Object相比,究竟有什么优势,目前就我本人使用体验来说,new Map完全可以用Obj ...

AI搜索,回复如下:



JavaScript中new Map与Object的性能对比
性能对比概述
[color=rgba(0, 0, 0, 0.9)]在JavaScript中,new Map和Object都可以用来存储键值对,但它们在性能上有一些差异。以下是一些关键点的对比:


插入操作的性能
  • 大量插入操作:当涉及到大量的插入操作时,Map的性能通常优于Object。这是因为Map的哈希表结构使其在插入操作上更加高效2
  • 键为整数的情况:如果键为整数值,Object的性能可能会更好。这是因为整数可以作为对象的属性名,浏览器引擎对此进行了优化2

查找操作的性能
  • 少量键值对:如果只包含少量键值对,Object有时候速度更快。这可能是因为Object的查找操作相对简单2
  • 键不为整数的情况:如果键不是整数,Map的性能会更好。这是因为Map的哈希表结构使得查找操作非常快速2

使用场景和建议使用场景
  • Map:适用于需要频繁插入和删除操作的场景,尤其是当键不是原始类型(如字符串或数字)时。
  • Object:适用于键为原始类型且不需要频繁插入和删除操作的场景。
建议
  • 根据具体需求选择:在选择使用Map还是Object时,应根据具体的应用场景来决定。如果应用需要频繁地插入和删除键值对,并且键不是原始类型,那么Map可能是更好的选择。反之,如果键是原始类型且不需要频繁插入和删除操作,那么Object可能更适合。

总结
[color=rgba(0, 0, 0, 0.9)]总的来说,new Map和Object在JavaScript中各有优势。Map在处理非原始类型的键时具有更好的性能,特别是在大量插入和删除操作的场景下。而Object则在键为原始类型且不需要频繁插入和删除操作的场景下表现更好。因此,在选择使用哪种数据结构时,应根据具体的应用需求来决定。


TA的精华主题

TA的得分主题

发表于 2024-12-8 22:57 | 显示全部楼层
A刘志勇 发表于 2024-12-8 16:14
这句还是没有理解,请详细解释一下好吗?

1、数组本身也是一个特殊的对象
比如 let arr = [1,3,5,7]
看成是数组时,是通过整数下标来访问的:arr[0]、arr[1]、arr[2]。。。
也可以看成是特殊的对象,let arr = {0:1, 1:3, 2:5, 3:7} 或者是 {"0":1, "1":3, "2":5, "3":7}
访问方法分别是 arr[0]、arr[1]、arr[2]。。。或者 arr[“0”]、arr[“1”]、arr[“2”]。。。

2、既然数组也是对象,自然就可以在其中添加属性,比如:
let arr = [1,3,5,7]
arr['abc']= "1355aaa" //在数组【对象】arr中,添加属性“abc”
添加属性后,arr仍然可以象原来的数组一样的用整数下标访问,也可以通过arr['abc']访问其作为对象的属性值"1355aaa"

TA的精华主题

TA的得分主题

发表于 2024-12-8 23:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

非常感谢,原来是这样子
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-25 02:51 , Processed in 0.045432 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表