问答 / 175 / 3 / 创建于 4个月前
在JS中,如何保证数组插入时的唯一性?场景:websocket,多人操作一个数组,瞬间同时调用insert
let list = [{id:1},{id:2},{id:10}] function insert(id) { if (!list.some(item => { return item.item == id })) { // 判断和插入不是原子性的,会不会有并发问题? list.push({id:id}) } }
插入一个临时数组,然后有一个统一的死循环将临时数组的数据插入数组中
有JS大佬告诉我,JS是单线程,如果是单线程那就不需要考虑了~
只能判断,要么加个hashmap直接判断
直接把id作为key存到对象里
const idMap = {1: {id:1, name: "张三"}, 2: {id:2, name: "李四"}} // 写入 idMap[id] = xxxxxx; // 判断是否存在 const searchKey = 1; if (idMap[searchKey]) // true //或者 if (idMap.hasOwnProperty(searchKey)) // true
我要举报该,理由是:
有JS大佬告诉我,JS是单线程,如果是单线程那就不需要考虑了~
只能判断,要么加个hashmap直接判断
直接把id作为key存到对象里