【发布时间】:2018-02-25 06:27:05
【问题描述】:
我正在学习在线课程,其中一个挑战是:
编写一个名为 extractKey 的函数,它接受两个参数、一个对象数组和一个键的名称,并返回一个仅包含该键值的数组:您必须使用 reduce。
extractKey([{name: "Elie", isInstructor:true},{name: "Tim", isInstructor:true},{name: "Matt", isInstructor:true}], "name");
// ["Elie", "Tim", "Matt"]
我想我可以这样做:
function extractKey(arr, key) {
arr.reduce(function(a, b) {
console.log(a.push(b[key]))
}, [])
}
但它返回 1。我有一个将每个值推入空数组的一般想法,但是当控制台记录每个值时,a 将在下一个累加器返回 undefined。
【问题讨论】:
-
为什么是
reduce,而不是map?另请注意,在您当前的实现中,extractKey和 reduce 函数实际上都没有返回任何内容。 -
该函数没有返回任何内容,您正在打印
.push()方法的返回值,而不是数组的内容。 -
挑战是使用reduce。我已经用地图完成了。更新了问题。
标签: javascript