为什么这个简单的 Javascript reduce 简单示例不起作用?
// expected output: ["red", "yellow", "blue"]
var primaryColors = [
{ color: 'red' },
{ color: 'yellow' },
{ color: 'blue' }
];
primaryColors.reduce({
function(previous, primaryColor) {
previous.push(primaryColor.color);
return previous;
}
}, []);
// VM607:2 Uncaught TypeError: #<Object> is not a function
// at Array.reduce (native)
// at <anonymous>:2:15
最佳答案
根据 reduce
函数的签名,它的第一个参数应该是 function
,
primaryColors.reduce(function(previous, primaryColor) {
previous.push(primaryColor.color);
return previous;
}, []);
DEMO
此外,这种情况最适合 map ,
var result = primaryColors.map(function(primaryColor) {
return primaryColor.color;
}, []);
DEMO
关于Javascript 减少示例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41548599/