为什么普通Javascript的这个简单示例减少不起作用?
<div class="extra_pdf_link">
<a href="http://www.website.com/lib/link-to-file.pdf">
</div>
答案 0 :(得分:5)
根据reduce
函数的签名,它的第一个参数应为function
,
primaryColors.reduce(function(previous, primaryColor) {
previous.push(primaryColor.color);
return previous;
}, []);
此外,此方案最适合map,
var result = primaryColors.map(function(primaryColor) {
return primaryColor.color;
}, []);
答案 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)