是否在对象中存在值的Javascript?

代达罗斯

香港专业教育学院有一个对象:

var car = {
    company: "Honda",
    year: "2011",
    Model: "Brio"
}

我想知道是否存在继承的方法(是正确的短语吗?)来检查给定对象内是否存在值,有点像x.hasOwnPropertyif (x in car)或者,我应该写我自己的。

我已经做了一些谷歌搜索,但它们都导致hasOwnProperty或检查数组中是否存在值。

编辑以使评论中的所有人满意:我可以想到两个用例,在哪里有用?

  1. 检查未定义的密钥并报告哪个

    if (!car.isInvalid(car, undefined)) 
        validCarsArray.push (car);
    
  2. 检查对象中是否存在一般用户输入

    var text = searchBox.input; 
    
    validCarArrays.forEach (function (car) {
        if (car.hasOwnValue(car, text)) {
        displayToUserAsResult (car);
        }
    });
    
jfriend00

不,没有内置方法可在对象上搜索值。

唯一的方法是遍历对象的所有键并检查每个值。使用即使在旧的浏览器中也可以使用的技术,您可以这样做:

function findValue(o, value) {
    for (var prop in o) {
        if (o.hasOwnProperty(prop) && o[prop] === value) {
            return prop;
        }
    }
    return null;
}

findValue(car, "2011");    // will return "year"
findValue(car, "2012");    // will return null

注意:即使可能存在多个匹配的属性,这也会返回包含搜索值的第一个属性。以效率为代价,您可以返回包含所需值的所有属性的数组。

注意:这将使用额外的.hasOwnProperty()检查来防止任何向枚举属性添加代码的代码Object.prototype如果没有这样的代码,并且您确定永远不会有,则.hasOwnProperty()可以取消检查。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查找数组中是否存在对象中的值

来自分类Dev

验证列表中是否存在对象

来自分类Dev

检查数组中是否存在对象

来自分类Dev

检查数组中是否存在对象

来自分类Dev

jQuery检查值是否在对象中

来自分类Dev

Javascript 测试具有数组的对象中是否存在对象键

来自分类Dev

如何构造循环以检查嵌套数组中是否不存在对象值

来自分类Dev

检查 PHP 7 中是否存在对象值的最有效方法

来自分类Dev

检查对象列表中是否存在对象

来自分类Dev

检查对象树中是否存在对象路径

来自分类Dev

检查对象列表中是否存在对象属性

来自分类Dev

检查对象中是否已存在对象

来自分类Dev

在对象 Javascript 中添加/更改值

来自分类Dev

检查Java中ArrayList中是否存在对象

来自分类Dev

Powershell-验证AD中是否存在对象

来自分类Dev

测试存储桶中是否存在对象?

来自分类Dev

检查Python中是否存在对象ID

来自分类Dev

Python:检查生成器中是否存在对象

来自分类Dev

javafx检查场景中是否存在对象

来自分类Dev

R-检查函数中是否存在对象

来自分类Dev

颤动:检查列表中是否已存在对象

来自分类Dev

测试存储桶中是否存在对象?

来自分类Dev

检查Java中是否存在对象属性

来自分类Dev

检查MongoDB中是否存在对象(文档)(使用Jongo)

来自分类Dev

查找HashMap中是否已存在对象

来自分类Dev

验证会话数组中是否存在对象

来自分类Dev

如何判断模板中是否存在对象?

来自分类Dev

如何检查JavaScript对象中的值是否存在以不加倍?

来自分类Dev

检查对象是否在对象数组中-javascript