Javascript 检查数组中是否存在该对象属性

Javascript 检查数组中是否存在该对象属性,javascript,Javascript,我有以下数据集 data=[{name: "hk", age:21, gender:"M"}, {name: "kk", age:31, gender:"M"},{name: "tk", age:11, gender:"F"}] 如何测试是否有人名hk和找到的对象的索引 我已经用下面的代码进行了检查,但它不起作用 data.hasOwnProperty("hk") 试试看: var数据=[{姓名:hk,年龄:21,性别:M},{姓名:kk,年龄:31,性别:M},{姓名:tk,年龄:11,

我有以下数据集

data=[{name: "hk", age:21, gender:"M"}, {name: "kk", age:31, gender:"M"},{name: "tk", age:11, gender:"F"}]
如何测试是否有人名hk和找到的对象的索引

我已经用下面的代码进行了检查,但它不起作用

data.hasOwnProperty("hk")
试试看:

var数据=[{姓名:hk,年龄:21,性别:M},{姓名:kk,年龄:31,性别:M},{姓名:tk,年龄:11,性别:F}] 函数existsname{ var项目,i=0; whileitem=数据[i++] ifitem.name==名称返回-i 返回-1 } AlertTk?-索引:+existk//-1:不存在尝试如下操作:

var数据=[{姓名:hk,年龄:21,性别:M},{姓名:kk,年龄:31,性别:M},{姓名:tk,年龄:11,性别:F}] 函数existsname{ var项目,i=0; whileitem=数据[i++] ifitem.name==名称返回-i 返回-1 }
AlertTk?-索引:+existk//-1:notexists您必须遍历数组并检查每个对象

function hasName(prop, value, data) {
    return data.some(function(obj) {
        return prop in obj && obj[prop] === value;
    });
}
编辑: 如果您想返回索引,则必须使用跟踪索引的循环,类似于forEach


您必须遍历数组并检查每个对象

function hasName(prop, value, data) {
    return data.some(function(obj) {
        return prop in obj && obj[prop] === value;
    });
}
编辑: 如果您想返回索引,则必须使用跟踪索引的循环,类似于forEach


javascript中有内置的方法吗?不使用while条件?是的,您可以在数组中使用一些,我使用了循环,因为有些浏览器仍然不支持某些循环。更快捷的是,如何获取找到的对象的索引?更新的返回索引:要检查是否不存在,该值返回-1。与顺便说一句,我发现变量I=0的正则表达式,n=data.length;我!=n++我每次操作都比计算数组元素快。javascript中有内置的方法吗?不使用while条件?是的,您可以在数组中使用一些,我使用了循环,因为有些浏览器仍然不支持某些循环。更快捷的是,如何获取找到的对象的索引?更新的返回索引:要检查是否不存在,该值返回-1。与顺便说一句,我发现变量I=0的正则表达式,n=data.length;我!=n++我的运算速度比每次计算数组元素都要快。多亏了adeneo,它工作起来很好用。当SOF允许的时候,我会做个标记作为答案。我怎样才能得到找到的对象的索引呢?谢谢adeneo,它很好用。当SOF允许时,我将标记为答案。我如何获得找到的对象的索引?