正如其他答案所暗示的那样,遍历数组可能是最好的方法。但是我会把它放在它自己的函数中,并使它更抽象一些:
function findWithAttr(array, attr, value) { for(var i = 0; i < array.length; i += 1) { if(array[i][attr] === value) { return i; } } return -1;}var Data = [ {id_list: 2, name: 'John', token: '123123'}, {id_list: 1, name: 'Nick', token: '312312'}];这样,您不仅可以找到包含“ John”的一个,而且可以找到包含令牌“ 312312”的一个:
findWithAttr(Data, 'name', 'John'); // returns 0findWithAttr(Data, 'token', '312312'); // returns 1findWithAttr(Data, 'id_list', '10'); // returns -1
编辑:
未找到时更新了函数以返回-1,因此它遵循与Array.prototype.indexOf()相同的结构



