提问人:Matthew Gregerson 提问时间:2/4/2023 最后编辑:BarmarMatthew Gregerson 更新时间:2/4/2023 访问量:54
回调返回语句有问题
Having trouble with callback return statements
问:
跳过回调返回时遇到一些麻烦。问题来了:
编写一个接受数组的函数 ,以及一个回调函数 cb。应在数组上调用回调函数,然后返回的值应为数组,而不管回调返回什么。
tap
items
我的尝试:
function tap(items, cb){
let result = items.map(cb)
return result;
}
样品:
console.log(tap([1, 2, 3], function (items) {
items.pop();
})).reverse(); // [2,1]
console.log(tap(["a", "b", "c"], function (items) {
return items[0];
})); // ["a","b","c"]
当我输入这段代码时,我希望它将回调函数映射到 items 数组。
对于每个测试用例,我都收到了以下内容:
a. TypeError: items.pop is not a function
b. [ 'a', 'b', 'c' ]
答:
1赞
Barmar
2/4/2023
#1
这些说明没有说明如何映射函数,您只需要在整个数组上调用它。
由于您应该返回原始数组,因此无需将回调结果分配给变量。只需返回.items
您还需要调用 返回的结果。您根据 的结果调用它,但它不返回任何内容。reverse()
tap()
console.log()
function tap(items, cb){
cb(items);
return items;
}
console.log(tap([1, 2, 3], function (items) {
items.pop();
}).reverse()); // [2,1]
console.log(tap(["a", "b", "c"], function (items) {
return items[0];
})); // ["a","b","c"]
评论
.map()
return
return
map
cb
item.pop()
cb
item