问题
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'}
回答1:
You miss the square brackets, while defining the object key to delete.
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'}
回答2:
You should replace delete obj.key; with delete obj[key];
来源:https://stackoverflow.com/questions/43615295/iterative-conditional-removal-of-object-property-using-for-in-and-if