两个数组对象
const list1 = [
{type: 0, val: 2},
{type: 1, val: 3},
{type: 2, val: 5},
{type: 3, val: 10},
{type: 4, val: 9},
{type: 5, val: 7},
]
const list2 = [
{type:2, count: 10},
{type:4, count: 14},
]
要判断:list1里面的type,与list2的type相同的话,就改变list1对象里的val值为list2对象里的count,如果不同的话,就设为0
预期的结果
list1 = [
{type: 0, val: 0},
{type: 1, val: 0},
{type: 2, val: 10},
{type: 3, val: 0},
{type: 4, val: 14},
{type: 5, val: 0},
]
现在的实现代码
const searType = list2.map(i => i.type);
const searNum = list2.map(n => n.count);
list1.forEach(l => {
if (l.type == searType) l.val = searNum[0];
else l.val = 0;
});
怎么能精简点
如果要直接改变 list1,就用 forEach 代替 map
不建映射表,直接查也可以。下面是 map 写法改的,可以自己改成 forEach 写法