编写一个名为“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];
}
}
我的代码出了什么问题?如果未定义属性,我不确定如何从对象中删除属性?
答案 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];
}
}
}