let a = [1, 2, 3, 4];
let b = [
{
obj: {
id: 1,
lock: false,
},
},
{
obj: {
id: 2,
lock: false,
},
},
];
b 的 id 在 a 中出现了就改为 true
解的方法就套娃 有没有更好的解法
let a = [1, 2, 3, 4];
let b = [
{
obj: {
id: 1,
lock: false,
},
},
{
obj: {
id: 2,
lock: false,
},
},
];
b 的 id 在 a 中出现了就改为 true
解的方法就套娃 有没有更好的解法
|
yigemeirenyongdeJul 24, 2020
1
Number(true) Number(item.id) ?
|
|
3
是 lock 改为 true
|
|
TomatoYuyukoJul 24, 2020
4
数据不复杂而且特征明显的话,直接转字符串正则或者转数组切分取出 id,includes 一遍就出来了
不过还是套娃可读性高 |
|
5
b.forEach(o=>a.includes(o.obj.id)&&(o.obj.lock = true))
|
|
7
@BreadKiller 这样 ok 感谢大佬
|
|
8
b.map(item => item.obj.lock = a.includes(item.obj.id))
|
|
9
let a = [1, 2, 3, 4];
let b = [ { obj: { children: [ { id: 1, lock: true, }, { id: 2, lock: true, }, ], }, }, ]; 。。。 |
|
10
😂 升级了
|
|
VegetableJul 24, 2020
11
写个递归,a 改成 Set,应该就没什么可做的了。
|
|
sima675Jul 24, 2020
13
b 改成对象就好了嘛
|
|
zzuieliyaoliJul 24, 2020
15
@heasy 这个好,没副作用
|
|
MMZZJul 24, 2020
16
b.map(item => {
return { obj: { id: item.obj.id, lock: a.includes(item.obj.id) ? true : false } } }) 前面都不太行吧? |
|
auroracccJul 24, 2020
18
b.map(ele => ({obj: {...ele.obj, lock: a.includes(ele.obj.id)}}))
|