对象和对象数组这种遍历怎么做?
一个obj的值为
一个tabList为tabList:
[ {
label:'全部',
name:'name1',
number:10,
id:1
},
{
label:'处理中',
name:'name2',
number:4,
id:2
},
{
label:'已采纳',
name:'name3',
number:4,
id:3
},
{
label:'未采纳',
name:'name4',
number:1,
id:4
}
],
怎么通过循环遍历将obj里面key值对应的value值相应的赋值给tabList里面的number,当tabList里面的label为全部时,该项的number的值为obj里面所有key的value之和
回答:
tabList.forEach(v => v.number = v.label == '全部' ? Object.values(obj).reduce((sum,n) => sum+(+n||0), 0) : (obj[v.label] || 0))
回答:
const obj = { '处理中': 4, '已提交': 1, '已采纳': 4, '未采纳': 1, } const tablist = [
{
label: '全部',
},
{
label: '处理中',
},
{
label: '已采纳',
},
{
label: '未采纳',
}
]
obj['全部']=Object.values(obj).reduce((acc,cur)=>acc+cur)
for (const iterator of tablist) {
iterator.number = obj[iterator.label]
}
console.log(tablist)
回答:
const obj = { '处理中': 4,
'已提交': 1,
'已采纳': 4,
'未采纳': 1
}
const tabList = [
{
label:'全部',
name:'name1',
number: 0,
id:1
},
{
label:'处理中',
name:'name2',
number: 0,
id:2
},
{
label:'已采纳',
name:'name3',
number: 0,
id:3
},
{
label:'未采纳',
name:'name4',
number: 0,
id:4
}
]
const total = Object.values(obj).reduce((prev, curr) => prev + curr, 0)
tabList.forEach(item => {
if (item.label === '全部') {
item.number = total
} else {
item.number = obj[item.label] ?? 0
}
})
以上是 对象和对象数组这种遍历怎么做? 的全部内容, 来源链接: utcz.com/p/932884.html