首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何根据javaScript中的条件从对象中删除值

如何根据javaScript中的条件从对象中删除值
EN

Stack Overflow用户
提问于 2018-10-23 04:32:10
回答 1查看 33关注 0票数 0

为什么这段代码运行时没有错误,但没有从obj中删除任何内容?

代码语言:javascript
复制
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);

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-23 04:42:49

与Python不同,您不能只迭代对象的长度,因为obj.length === undefined。您可以使用Object.keys()来获取键数组。然后,您可以迭代它们:

代码语言:javascript
复制
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

代码语言:javascript
复制
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))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52937365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档