JavaScript If条件语句不筛选输入值

JavaScript If条件语句不筛选输入值,javascript,if-statement,Javascript,If Statement,我正在研究一个训练营前的问题。我获取一个对象并删除任何具有奇数数值的属性,然后返回该对象。为什么没有过滤掉奇数值 /* Write a function called "removeOddValues". Given an object, "removeOddValues" removes any properties whose valuse are odd numbers. var obj = { a: 2, b: 3, c: 4 }; removeOddValues(obj

我正在研究一个训练营前的问题。我获取一个对象并删除任何具有奇数数值的属性,然后返回该对象。为什么没有过滤掉奇数值

/*
Write a function called "removeOddValues".

Given an object, "removeOddValues" removes any properties whose valuse are odd numbers.

var obj = {
  a: 2,
  b: 3,
  c: 4
};
removeOddValues(obj);
console.log(obj); // --> { a: 2, c: 4 }
*/

function removeOddValues(obj) {
  for (var values in obj) {
      if (obj[values] === 'Number' && obj[values] % 2 !== 0) {
           delete obj[values]
      }  
      }   
      return obj;
};


var obj = {
  a: 2,
  b: 3,
  c: 4
};


removeOddValues(obj);

output:
{a: 2, b: 3, c: 4}

它们不会被删除,因为您构造的If语句对于您所处的条件的计算结果不是
true

我认为您在第一个条件中缺少了
类型的
。您的if声明应如下所示:

if ((typeof obj[values]) === 'number' && obj[values] % 2 !== 0) ...
修复此问题后,您的代码可以正常运行:

函数removeOddValues(obj){
用于(obj中的var值){
如果((对象[值的类型])=='number'&对象[值]%2!==0){
删除obj[值]
}
}
返回obj;
};
var obj={
答:2,,
b:3,
c:4
};

console.log(removeOddValues(obj))
不会删除它们,因为您构造的If语句对于您所处的条件的计算结果不是
true

我认为您在第一个条件中缺少了
类型的
。您的if声明应如下所示:

if ((typeof obj[values]) === 'number' && obj[values] % 2 !== 0) ...
修复此问题后,您的代码可以正常运行:

函数removeOddValues(obj){
用于(obj中的var值){
如果((对象[值的类型])=='number'&对象[值]%2!==0){
删除obj[值]
}
}
返回obj;
};
var obj={
答:2,,
b:3,
c:4
};
console.log(removeOddValues(obj))
只需使用以下命令:

function removeOddValues(obj) {
  for (var values in obj) {
      if (typeof obj[values] === 'number' && obj[values] % 2 !== 0) 
           delete obj[values]           
  }   
  return obj;
};
只要用这个:

function removeOddValues(obj) {
  for (var values in obj) {
      if (typeof obj[values] === 'number' && obj[values] % 2 !== 0) 
           delete obj[values]           
  }   
  return obj;
};

谢谢你,卢卡!你说得对,我缺少了“typeof.”,数字的类型是
“Number”
,而不是
“Number”
;-)谢谢你,卢卡!你说得对,我缺少了“typeof.”,数字的类型是
“Number”
,而不是
“Number”
;-)