Javascript-为什么不';我的回电没用吗?I';我得到的是一个空数组,而不是偶数数组

Javascript-为什么不';我的回电没用吗?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)

我尝试使用回调来过滤数组,它只返回偶数, 但是我得到[]个空数组作为输出,我当然想利用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) => (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是移除值
**您的错误在console.log中写错了位置,并且不清楚阵列筛选器需要做什么

//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);