在JavaScript中查找对象数组中的数组元素的索引?

时间:2013-12-17 22:25:56

标签: javascript jquery arrays

(首先,我已经在这里阅读了很长时间的问题和答案,但这是我的第一篇文章。)

我找到了解决方案,包括编写自己的功能,但我必须相信有一种内置的方法来实现这一点。

我正在使用JavaScript并拥有一组自定义对象,每个对象都是这样的:

{ prop1: "1", prop2: "blah", prop3: "news", prop4: "2", prop5: "1" }
{ prop1: "2", prop2: "foo", prop3: "news", prop4: "2", prop5: "1" }
{ prop1: "3", prop2: "bar", prop3: "news", prop4: "2", prop5: "1" }
{ prop1: "4", prop2: "hello", prop3: "news", prop4: "2", prop5: "1" }

我想找到一种内置的方法来查找其中一个对象的数组索引给定其属性之一的值(对于此示例,如果我给它“prop2”和“bar”它将返回索引2)。像你期望的那样使用.indexOf会很好,但显然有一系列自定义对象,它不会那样工作。

我发现自己的功能代码运行良好,但在我固执的情况下,我确信必须有一种内置的方法来实现它。我在这个项目中用jQuery做了很多东西,所以这绝对是一个选择。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以扩展本机数组原型来执行此操作,同时将propertyvalue作为字符串。这是一个JSFiddle来证明

Array.prototype.indexOfAssociative=function(property,value){
    for(var i=0;i<this.length;i++){
          if(this[i][property]==value){
               return i;
          }

    }
    return -1;
};
相关问题