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

标签 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];
  }
}

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

最佳答案

首先,您尝试删除小于给定数字的数字。您可以使用 property > num 来修复此问题而不是property < num .

接下来,您实际上并没有查看所有属性。事实上, prop 是未定义的。您需要使用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];
        }
    }
}

关于javascript - 如何有条件地从对象中删除属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43643845/

相关文章:

javascript - 向 grunt 服务器开发工作流程添加流类型检查

javascript - Uncaught Error : SecurityError: DOM Exception 18 Canvas

javascript - Node.js 即时更改导出

javascript - .click 不适用于图形中的 anchor

javascript - Ember 复选框单击,更改事件未触发,给出错误

JavaScript 滚动脚本 - 在测试中触发,而不是在开发站点上触发

javascript - 为什么我的 JSON 不起作用

javascript - 通过url找到页面上的图片,并在下面放入数据

javascript - 为函数提供一个特定字符以在变量名中使用?

javascript - 无法在 javascript 中用前一个元素兄弟递增最后一个元素