为什么这个简单的 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/

10-11 15:05