数组A 原始数组
[
{
"id": "4c80da7e5fac4c43adcb7e79dc6feeeb",
"isSelect": 0,
"rowLocked": 0,
"sortNo": 1
},
{
"id": "9a765b3ba453428ca7c9dff20974a173",
"isSelect": 0,
"rowLocked": 0,
"sortNo": 2
},
{
"id": "a6aa8ba1e5ba489598e708afdde0531b",
"isSelect": 0,
"rowLocked": 0,
"sortNo": 3
},
{
"id": "8045d81e9e8e40c5ae76a9d199ad211f",
"isSelect": 0,
"rowLocked": 0,
"sortNo": 4,
"validity": 1658419200000
},
{
"id": "1813c65bd6cf4b489f8baf0b37d31427",
"isSelect": 1,
"rowLocked": 0,
"sortNo": 5
},
{
"id": "7895f65431fb405cbb463de58034043c",
"isSelect": 0,
"rowLocked": 0,
"sortNo": 6
}
]
数组B 会改变 前端每执行一次change方法,数组B的长度会变,会变成0 最大就等于原始数组A
[
{
"id": "4c80da7e5fac4c43adcb7e79dc6feeeb",
"isSelect": 0,
"rowLocked": 0,
"sortNo": 1
},
]
现在需要在change事件里面判断,数组B在数组A里面的话,把数组A里面对应的存在数组B的元素的isSelect变成1 否则变成0 这种数组比较应该怎么处理
1.A先做一个id数组
const aids= = ['4c8...','9a7','a6a'...]
再做一个hash表(可以是map) key就是id value就是A数组里面id为key的那项
{
}
2.change方法触发的时候 数组B的长度会变 遍历B拿到id数组
const bids = Barr.map(i=>i.id)
3.遍历A 如果id在bids里面则select=1否则select=0
时间复杂度应该是o(N) 也可以不做哈希表,hash表[i].select=1这种代码改成遍历A找到id符合的那项把它的select改变