我正在尝试从对象中删除数字属性:
function removeNumberValues(obj) {
for (i in obj) {
if (obj['i'] instanceof Number) {
delete obj['i'];
}
}
return obj;
}Run Code Online (Sandbox Code Playgroud)
但它并没有删除数值属性.HALP?我错过了什么?
您需要使用变量i而不是值'i',您可以使用typeof运算符和number值进行检查.
function removeNumberValues(object) {
var key;
for (key in object) {
if (typeof object[key] === 'number') {
delete object[key];
}
}
return object;
}
console.log(removeNumberValues({ a: 'foo', b: 42 }));Run Code Online (Sandbox Code Playgroud)
使用Object.keys和Array#forEach迭代键.
function removeNumberValues(object) {
Object.keys(object).forEach(function (key) {
if (typeof object[key] === 'number') {
delete object[key];
}
});
return object;
}
console.log(removeNumberValues({ a: 'foo', b: 42 }));Run Code Online (Sandbox Code Playgroud)