How to find index of an object by key and value in an javascript array

后端 未结 7 1477
既然无缘
既然无缘 2020-11-28 22:52

Given:

var peoples = [
  { \"attr1\": \"bob\", \"attr2\": \"pizza\" },
  { \"attr1\": \"john\", \"attr2\": \"sushi\" },
  { \"attr1\": \"lar         


        
7条回答
  •  青春惊慌失措
    2020-11-28 23:31

    If you want to check on the object itself without interfering with the prototype, use hasOwnProperty():

    var getIndexIfObjWithOwnAttr = function(array, attr, value) {
        for(var i = 0; i < array.length; i++) {
            if(array[i].hasOwnProperty(attr) && array[i][attr] === value) {
                return i;
            }
        }
        return -1;
    }
    

    to also include prototype attributes, use:

    var getIndexIfObjWithAttr = function(array, attr, value) {
        for(var i = 0; i < array.length; i++) {
            if(array[i][attr] === value) {
                return i;
            }
        }
        return -1;
    }
    

提交回复
热议问题