为什么这段代码运行时没有错误,但没有从obj中删除任何内容?
function removeEvenValues(obj) {
for (i=0; i < obj.length;++i)
if (obj[i].value%2===0)
delete obj[i];
return obj;
}
const obj = {a:1, b:2 ,c:3, d:4}
const res = removeEvenValues(obj);
console.log(res);
发布于 2018-10-23 04:42:49
与Python不同,您不能只迭代对象的长度,因为obj.length === undefined
。您可以使用Object.keys()
来获取键数组。然后,您可以迭代它们:
obj = {a:1,b:2,c:3,d:4}
function removeEvenValues(obj) {
Object.keys(obj).forEach(key =>{
if (obj[key] % 2 ===0)
delete obj[key];
})
return obj;
}
console.log(removeEvenValues(obj))
或者您也可以使用for...in
obj = {a:1,b:2,c:3,d:4}
function removeEvenValues(obj) {
for(let key in obj){
if (obj[key] % 2 ===0)
delete obj[key];
}
return obj
}
console.log(removeEvenValues(obj))
https://stackoverflow.com/questions/52937365
复制相似问题