Javascript减少示例

时间:2017-01-09 12:56:58

标签: javascript

为什么普通Javascript的这个简单示例减少不起作用?

<div class="extra_pdf_link">
<a href="http://www.website.com/lib/link-to-file.pdf">
</div>

3 个答案:

答案 0 :(得分:5)

根据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

答案 1 :(得分:2)

你的逻辑是正确的,但语法有点不对劲。 reduce将函数回调作为第一个参数,而您有一个对象文字:

primaryColors.reduce(function(previous, primaryColor) {
    previous.push(primaryColor.color);
    return previous;
}, []);

答案 2 :(得分:0)

根据先前的答案,对reduce()的回调将收到以下参数列表(accumulator, currentValue, currentIndex, array)

但是整个事情可以简化为:

const primaryColors = [
  { color: 'red' },
  { color: 'yellow' },
  { color: 'blue' }
]; 

const result = primaryColors.reduce((acc, el) => acc.concat([el.color]), []);

console.log(result)