-
我在 JavaScript 里写了 const sorted = list.sort() 想拿到一个排好序的新数组、同时保留原始顺序的 list 去做别的事,结果后面所有依赖原始顺序的逻辑全乱了套,排查很久才发现 sort 根本不返回新数组、它是把原来的 list 就地排序了我那两个变量指向的压根是同一个被改过的数组的深度复盘
我有个数组 list 代表用户提交的有意义的原始顺序,需要两份东西:一份按金额排序后展示、一份保持原始顺序做第 N 条对应第 N 个录入的对应关系。我顺手写下 const sorted = list.sort((a,b)=>a.amount-b.amount),以为 sorted 是排序后的新数组、list 还是原来的样子。可后面用 list 做对应关系时全错位了,打印 list 才傻眼——…- 0
- 0
-
我想快速造一个长度为 5、每项都初始化好的数组,顺手写了 new Array(5).map,结果 map 里的函数一次都没执行、拿到的还是一个全是空的数组,排查半天才发现 new Array(5) 造出来的根本不是 5 个 undefined、而是 5 个会被 map 跳过的空位的深度复盘
我想快速生成一个长度 5、每项都初始化好的数组,很自然写了 new Array(5).map((_, i) => i),在脑子里这就是造 5 个格子再逐个填值。可结果让我懵了:map 里的函数一次都没执行(加 console.log 一行都没打印),拿到的还是个长度 5 却什么都没填的空数组。我以为 map 用错了、箭头函数写错了,检查语法都没问题。直到把 new Array(5) 打印出来…- 0
- 0
数组
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!


