Javascript-为什么不';我的回电没用吗?I';我得到的是一个空数组,而不是偶数数组
我尝试使用回调来过滤数组,它只返回偶数, 但是我得到[]个空数组作为输出,我当然想利用isEvenOrOddJavascript-为什么不';我的回电没用吗?I';我得到的是一个空数组,而不是偶数数组,javascript,callback,Javascript,Callback,我尝试使用回调来过滤数组,它只返回偶数, 但是我得到[]个空数组作为输出,我当然想利用isEvenOrOdd enter code here //Defining an array let numbers = [1,2,3,4,5,6,7,8,9]; //Define callback function isEvenOrOdd; Making use of this function is mandatory function isEvenOrOdd(x){ // let x; (x)
enter code here
//Defining an array
let numbers = [1,2,3,4,5,6,7,8,9];
//Define callback function isEvenOrOdd; Making use of this function is mandatory
function isEvenOrOdd(x){
// let x;
(x) => (x % 2 === 0)
console.log(x % 2);
}
//Call callback function in main function filter
function filterNumbers(array, callback){
return array.filter(callback);
// console.log(callback)
}
//Displays only even numbers
filterNumbers(numbers, isEvenOrOdd);
我已经修好了你的密码。
您必须先阅读,然后才能看到结果代码
通知:
- 数组筛选器返回一个数组作为结果
- 数组筛选器在回调函数中需要一个布尔返回。TRUE是保留值,FALSE是移除值
//Defining an array
let numbers = [1,2,3,4,5,6,7,8,9];
//Define callback function isEvenOrOdd; Making use of this function is mandatory
function isEvenOrOdd(x){
// let x;
return x % 2 === 0;
}
//Call callback function in main function filter
function filterNumbers(array, callback){
return array.filter(callback);
// console.log(callback)
}
//Displays only even numbers
var r = filterNumbers(numbers, isEvenOrOdd);
console.log(r);
您必须从
isEvenOrOdd
函数返回true/false才能得到结果
let number=[1,2,3,4,5,6,7,8,9];
函数isEvenOrOdd(x){
返回(x%2==0)
}
//在主函数筛选器中调用回调函数
函数过滤器编号(数组、回调){
返回array.filter(回调);
}
//仅显示偶数
常量结果=过滤器编号(编号,isEvenOrOdd);
console.log(结果)
(x)=>(x%2==0)
不执行任何操作,isEvenOrOdd
不返回值。我想你的意思是const isEven=n=>n%2==0代码>。不过,这似乎过于复杂,数字。过滤器(e=>e%2===0)
是获得偶数的最直接方法。结果不对吗?或者您的代码中有任何东西不起作用?您需要提供有关您的问题的更多信息。您应该从函数中返回布尔值,这应该有效-函数isEvenOrOdd(x){return x%2==0;}
请进行一些研究,它将帮助您理解为什么这不起作用非常感谢大家,我试图理解这个问题中回调的复杂性,刚刚relalize(x)=>(x%2===0)返回一个布尔值而不是一个值,我试图在那里mimc filter的语法现在我理解了,感谢你所有的答案,这些都很有帮助
//Defining an array
let numbers = [1,2,3,4,5,6,7,8,9];
//Define callback function isEvenOrOdd; Making use of this function is mandatory
function isEvenOrOdd(x){
// let x;
return x % 2 === 0;
}
//Call callback function in main function filter
function filterNumbers(array, callback){
return array.filter(callback);
// console.log(callback)
}
//Displays only even numbers
var r = filterNumbers(numbers, isEvenOrOdd);
console.log(r);
let numbers = [1,2,3,4,5,6,7,8,9];
let evenNumbers = [];
function isEvenOrOdd(x){
return x % 2 == 0;
}
function filterNumbers(array, callback){
return array.filter(callback);
}
evenNumbers = filterNumbers(numbers, isEvenOrOdd);
console.log(evenNumbers);