Javascript 如何从对象键数组计算剩余值?
我有一个对象数组,用于输入ngx饼图,我必须计算值的总和,并形成一个具有剩余值的对象Javascript 如何从对象键数组计算剩余值?,javascript,Javascript,我有一个对象数组,用于输入ngx饼图,我必须计算值的总和,并形成一个具有剩余值的对象 a = [{name: "a", value: 50} {name: "b", value: 20} {name: "c", value: 0} {name: "d", value: 10}] 50+20+0+10 = 80 default = 100 - 80 = 20; result = [{na
a = [{name: "a", value: 50}
{name: "b", value: 20}
{name: "c", value: 0}
{name: "d", value: 10}]
50+20+0+10 = 80
default = 100 - 80 = 20;
result = [{name: "a", value: 50},
{name: "b", value: 20},
{name: "c", value: 0},
{name: "d", value: 10},
{name: "default", value: 20}]
a.map(el => {
sum = sum + el.value;
});
default = 100 - sum;
a.push({name: 'default', value: default})
您应该使用reduce而不是map
const a=[
{名称:“a”,值:50},
{名称:“b”,值:20},
{name:“c”,值:0},
{名称:“d”,值:10}
];
常数def=100-a.reduce((acc,el)=>acc=acc+el.value,0);
a、 推送({name:'default',value:def})
console.log(a)
您应该使用reduce而不是map
const a=[
{名称:“a”,值:50},
{名称:“b”,值:20},
{name:“c”,值:0},
{名称:“d”,值:10}
];
常数def=100-a.reduce((acc,el)=>acc=acc+el.value,0);
a、 推送({name:'default',value:def})
console.log(a)
我会这样做:
const a=[
{名称:“a”,值:50},
{名称:“b”,值:20},
{name:“c”,值:0},
{名称:“d”,值:10}
];
const result=[…a,{name:“default”,值:100-a.reduce((acc,cur)=>acc=acc+cur.value,0)}]
控制台日志(结果)代码>我会这样做:
const a=[
{名称:“a”,值:50},
{名称:“b”,值:20},
{name:“c”,值:0},
{名称:“d”,值:10}
];
const result=[…a,{name:“default”,值:100-a.reduce((acc,cur)=>acc=acc+cur.value,0)}]
控制台日志(结果)代码>简单而优雅的答案
const a = [{name: "a", value: 50},
{name: "b", value: 20},
{name: "c", value: 0},
{name: "d", value: 10}]
const expectedResult = [{name: "a", value: 50},
{name: "b", value: 20},
{name: "c", value: 0},
{name: "d", value: 10},
{name: "default", value: 20}]
a.push(
{
name: "default",
value: 100 - a.reduce((acc, curr) => (acc + curr.value), 0)
}
);
console.log(a)
简单而优雅的回答
const a = [{name: "a", value: 50},
{name: "b", value: 20},
{name: "c", value: 0},
{name: "d", value: 10}]
const expectedResult = [{name: "a", value: 50},
{name: "b", value: 20},
{name: "c", value: 0},
{name: "d", value: 10},
{name: "default", value: 20}]
a.push(
{
name: "default",
value: 100 - a.reduce((acc, curr) => (acc + curr.value), 0)
}
);
console.log(a)
这会奏效的
let a = [
{ name: "a", value: 50 },
{ name: "b", value: 20 },
{ name: "c", value: 0 },
{ name: "d", value: 10 },
];
let sum = 0;
a.map((el) => {
sum += el.value;
});
const result= 100 - sum;
const newValueToAdd= {
name: "default",
value: result,
};
a.push(newValueToAdd);
这会奏效的
let a = [
{ name: "a", value: 50 },
{ name: "b", value: 20 },
{ name: "c", value: 0 },
{ name: "d", value: 10 },
];
let sum = 0;
a.map((el) => {
sum += el.value;
});
const result= 100 - sum;
const newValueToAdd= {
name: "default",
value: result,
};
a.push(newValueToAdd);
“default”是javascript中的保留关键字,您应该避免使用它。“default”是javascript中的保留关键字,您应该避免使用它。