那么我怎样才能对来自 react redux 的数组中所有对象的所有值求和呢?
So how can I sum all the values in all objects in an array which is coming from react redux?
这是 react redux reducer 文件,其中数字数组是:
const initialState = {
numbers: [ { name: 'max', num: 3 }, { name: 'jack', num: 2 } ]
}
这就是我想要对从 react redux state reducer 文件接收到的数字数组中所有对象的所有 num 值求和的方式
在组件中:
useEffect(() => {
const total = props.numbers.reduce((prev, current) => {
return prev + current.num, 0;
});
console.log(total);
console.log(props.numbers);
}, []);
这是来自 useEffect 的控制台日志:
0
(2) [{…}, {…}]
0: {name: "max", num: 3}
1: {name: "jack", num: 2}
length: 2
__proto__: Array(0)
总的 const 只是 0,它不起作用。
那么如何对来自 redux reducer 文件的数组中所有对象的所有 num 值求和呢??
, 0
应该是 reduce
的第二个参数,而不是 return
:
const total = props.numbers.reduce((prev, current) => {
return prev + current.num;
}, 0);
您需要修复减少:
const total = props.numbers.reduce((prev, current) => {
return prev + current.num;
}, 0);
你也可以使用map函数
sum = 0;
props.numbers.map(n => {
sum+= n.num;
})
您需要为prev
提供一个初始值作为reduce
的第二个参数。如果没有提供,那么在第一个 运行 期间,回调函数的第一个参数是数组的第一个元素,回调函数的第二个参数是数组的第二个元素。然后将 return 值传递给第一个参数,下一个元素是第二个值。
所以,为了添加,我添加了 0
作为初始值。
const numbers = [ { name: 'max', num: 3 }, { name: 'jack', num: 2 } ]
const total = numbers.reduce((prev, { num }) => {
return prev + num
}, 0)
console.log(total)
这是 react redux reducer 文件,其中数字数组是:
const initialState = {
numbers: [ { name: 'max', num: 3 }, { name: 'jack', num: 2 } ]
}
这就是我想要对从 react redux state reducer 文件接收到的数字数组中所有对象的所有 num 值求和的方式
在组件中:
useEffect(() => {
const total = props.numbers.reduce((prev, current) => {
return prev + current.num, 0;
});
console.log(total);
console.log(props.numbers);
}, []);
这是来自 useEffect 的控制台日志:
0
(2) [{…}, {…}]
0: {name: "max", num: 3}
1: {name: "jack", num: 2}
length: 2
__proto__: Array(0)
总的 const 只是 0,它不起作用。
那么如何对来自 redux reducer 文件的数组中所有对象的所有 num 值求和呢??
, 0
应该是 reduce
的第二个参数,而不是 return
:
const total = props.numbers.reduce((prev, current) => {
return prev + current.num;
}, 0);
您需要修复减少:
const total = props.numbers.reduce((prev, current) => {
return prev + current.num;
}, 0);
你也可以使用map函数
sum = 0;
props.numbers.map(n => {
sum+= n.num;
})
您需要为prev
提供一个初始值作为reduce
的第二个参数。如果没有提供,那么在第一个 运行 期间,回调函数的第一个参数是数组的第一个元素,回调函数的第二个参数是数组的第二个元素。然后将 return 值传递给第一个参数,下一个元素是第二个值。
所以,为了添加,我添加了 0
作为初始值。
const numbers = [ { name: 'max', num: 3 }, { name: 'jack', num: 2 } ]
const total = numbers.reduce((prev, { num }) => {
return prev + num
}, 0)
console.log(total)