javascript - 如何按值删除javascript对象项?

标签 javascript object

以以下对象为例:

var fruits = {
    "red" : "apple",
    "blue" : "blueberry",
    "yellow" : "banana"
}

我知道我可以使用 delete fruits["red"]通过键名删除它,但我怎么能通过水果名删除对象项?

最佳答案

你有没有尝试过这样的事情?

function deleteByValue(val) {
    for(var f in fruits) {
        if(fruits[f] == val) {
            delete fruits[f];
        }
    }
}

根据 Rocket 的评论,您可能需要查看 hasOwnProperty确保您没有删除对象原型(prototype)的成员:
function deleteByValue(val) {
    for(var f in fruits) {
        if(fruits.hasOwnProperty(f) && fruits[f] == val) {
            delete fruits[f];
        }
    }
}

关于javascript - 如何按值删除javascript对象项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9910336/

相关文章:

javascript - 返回 NaN 的数字?

javascript - 禁用 ASP.NET LinkBut​​ton 后重新启用它的正确方法是什么?

javascript - 如何使用 sendy 检查用户状态(订阅与否)

JavaScript:函数链接还是属性访问?

javascript - 如何在 JS 中选择具有特定值的数组中的对象

css - 我应该如何为angularjs中的嵌套对象应用条件类

javascript - Snap.svg - 拖动事件处理程序

Javascript添加监听器错误: TypeError: trigger. addEventListener不是函数

javascript - 你如何管理一个大脚本?

java - 自定义对象的数组列表