如何有条件地从对象中删除属性?

时间:2017-04-26 20:22:32

标签: javascript

编写一个名为“removeNumbersLargerThan”的函数。

给定一个数字和一个对象,“removeNumbersLargerThan”会删除任何值大于给定数字的属性。

var obj = {
  a: 8,
  b: 2,
  c: 'montana'
}

removeNumbersLargerThan(5, obj);

console.log(obj); // --> { b: 2, c: 'montana' }

我的代码:

function removeNumbersLargerThan(num, obj) {
  // your code here
  if (obj[prop] < num) {
    delete obj[prop];
  }
}

我的代码出了什么问题?如果未定义属性,我不确定如何从对象中删除属性?

1 个答案:

答案 0 :(得分:1)

首先,您尝试删除小于给定数字的数字。您可以使用property > num代替property < num来解决此问题。

接下来,您实际上并未查看所有属性。事实上,道具未定义。您需要使用for循环来检查每个属性。

var obj = {
  a: 8,
  b: 2,
  c: 'montana'
}

removeNumbersLargerThan(5, obj); console.log(obj); // --> { b: 2, c: 'montana' }

function removeNumbersLargerThan(num, obj) {
    for (var property in obj) {
        if (obj[property] > num) {
            delete obj[property];
        }
    }
}