为什么这段代码运行没有错误,但没有从 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);
最佳答案
与 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))
关于javascript - 如何根据 javaScript 中的条件从对象中删除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52937365/