编写一个名为“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/