2 回答

TA貢獻1786條經驗 獲得超13個贊
該函數返回未定義,因此您無法調用該函數 reduce。forEach
此外,你不需要調用函數,用一個reduce就好了。Array.prototype.map
const one = new Map ();
one.set ('part1', {section1: 1, section2: 'one'});
one.set ('part2', {section1: 8, section2: 'eight'});
one.set ('part3', {section1: 5, section2: 'five'});
let temp2 = Array.from(one.values()).reduce((sum, {section1: cur}) => sum + cur, 0);
console.log(temp2);

TA貢獻1859條經驗 獲得超6個贊
forEach 返回 ,您需要使用 來獲取數組中的 值來調用它。undefinedArray.mapsection1reduce
但問題是你沒有財產。幸運的是,我們.Map.mapvalues
values() 方法返回一個新的 Iterator 對象,該對象包含 Map 對象中按插入順序排列的每個元素的值。
因此,我使用over迭代器在中獲取一個可以運行的數組。...[].map
const one = new Map ();
one.set ('part1', {section1: 1, section2: 'one'});
one.set ('part2', {section1: 8, section2: 'eight'});
one.set ('part3', {section1: 5, section2: 'five'});
let temp = [...one.values()].map(x => x.section1).reduce((sum, cur) => sum + cur);
console.log(temp);
或者,您甚至不需要函數 當您將值轉換為數組時,可以直接調用mapMapreduce
const one = new Map ();
one.set ('part1', {section1: 1, section2: 'one'});
one.set ('part2', {section1: 8, section2: 'eight'});
one.set ('part3', {section1: 5, section2: 'five'});
let tempAlt = [...one.values()].reduce((sum, {section1: cur}) => sum + cur, 0);
console.log(tempAlt);
添加回答
舉報