对象和对象数组这种遍历怎么做?

一个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

回到顶部