带回调函数的过滤数组
filter array with callback function
我在使用此功能搜索程序名称时遇到了一些问题,这些名称可以限制实现回调函数的输出数量。希望你能帮我弄清楚
function filteritem(str,num,callback){
let result = name.filter( name => name.indexOf(str) !== -1 )
result.forEach(element => element.length == num)
callback(result);
}
function showFilter(wrd){
console.log(wrd);
}
console.log(filteritem("a",3,showFilter))
我的输出是:
[
'Abigail', 'Alexandra',
'Amanda', 'Angela',
'Bella', 'Carol',
'Caroline', 'Carolyn',
'Diana', 'Elizabeth',
'Ella', 'Faith',
'Olivia'
]
undefined
我想要的输出是:
["Abigail", "Alexandra", "Alison"];
const name = [
"Abigail",
"Alexandra",
"Amanda",
"Angela",
"Bella",
"Carol",
"Caroline",
"Carolyn",
"Diana",
"Elizabeth",
"Ella",
"Faith",
"Olivia",
];
function filteritem(str, num, callback) {
let result = name.filter((name) => name.indexOf(str) !== -1);
result = result.slice(0, 3);
callback(result);
}
function showFilter(wrd) {
console.log(wrd);
}
filteritem("a", 3, showFilter);
您希望通过 forEach
通话实现什么目标?您正在遍历结果数组,实际上什么都不做(您的函数 return 是一个布尔值:如果长度 == 3 则为真,否则为假)。
你想要做的是 return 结果的前 3 个元素:
callback(result.slice(0, 3));
我在使用此功能搜索程序名称时遇到了一些问题,这些名称可以限制实现回调函数的输出数量。希望你能帮我弄清楚
function filteritem(str,num,callback){
let result = name.filter( name => name.indexOf(str) !== -1 )
result.forEach(element => element.length == num)
callback(result);
}
function showFilter(wrd){
console.log(wrd);
}
console.log(filteritem("a",3,showFilter))
我的输出是:
[
'Abigail', 'Alexandra',
'Amanda', 'Angela',
'Bella', 'Carol',
'Caroline', 'Carolyn',
'Diana', 'Elizabeth',
'Ella', 'Faith',
'Olivia'
]
undefined
我想要的输出是:
["Abigail", "Alexandra", "Alison"];
const name = [
"Abigail",
"Alexandra",
"Amanda",
"Angela",
"Bella",
"Carol",
"Caroline",
"Carolyn",
"Diana",
"Elizabeth",
"Ella",
"Faith",
"Olivia",
];
function filteritem(str, num, callback) {
let result = name.filter((name) => name.indexOf(str) !== -1);
result = result.slice(0, 3);
callback(result);
}
function showFilter(wrd) {
console.log(wrd);
}
filteritem("a", 3, showFilter);
您希望通过 forEach
通话实现什么目标?您正在遍历结果数组,实际上什么都不做(您的函数 return 是一个布尔值:如果长度 == 3 则为真,否则为假)。
你想要做的是 return 结果的前 3 个元素:
callback(result.slice(0, 3));