使用 'for..in' 和 'if' 迭代条件删除对象 属性

Iterative conditional removal of object property using 'for..in' and 'if'

function removeNumbersLargerThan(num, obj) {
  for (var key in obj) {
    if (!isNaN(obj[key]) && obj[key] > num) {
      delete obj.key;
    }
  }
  return obj;
}
var obj = {
  a: 8,
  b: 2,
  c: 'montana'
}
removeNumbersLargerThan(5, obj);
console.log(obj); // Should be {b: 2, c: 'montana'}
该函数应删除 'for' 循环内满足 'if' 条件的任何 属性,但它不满足。

您在定义要删除的对象键时错过了方括号。

function removeNumbersLargerThan(num, obj) {
  for (var key in obj) {
    if (!isNaN(obj[key]) && obj[key] > num) {
      delete obj[key];
    }
  }
  return obj;
}
var obj = {
  a: 8,
  b: 2,
  c: 'montana'
}
removeNumbersLargerThan(5, obj);
console.log(obj); // Should be {b: 2, c: 'montana'}

您应该将 delete obj.key; 替换为 delete obj[key];