JS中遇到的两个小坑

178 阅读1分钟

1:Map无法使用JSON.stringify()进行序列化,如果要序列化可以自己生成一个Object,循环写值进去,或者直接使用JSON.stringify(Object.fromEntries(map))来进行处理,Object.fromEntries可以直接将Map转换为一个Object

2:delete array[index]的时候,当前位会被标记为empty,如果使用findIndex来查找的时候取值需要注意判空,如:

const arr = [{key: 1}, {key: 2}]
// 此时delete arr[0]
arr ==> [empty, {key: 2}]
// 调用
arr.findIndex(o => o.key === 2) 
// 则会报undefined无法找到key
// 对其判空即可:
arr.findIndex(o => o?.key === 2)