如何在JavaScript中通过对象的属性获取对象的索引?

2022-08-29 23:50:59

例如,我有:

var Data = [
  { id_list: 1, name: 'Nick', token: '312312' },
  { id_list: 2, name: 'John', token: '123123' },
]

然后,我想按 排序/反转此对象,例如。然后我想得到这样的东西:name

var Data = [
  { id_list: 2, name: 'John', token: '123123' },
  { id_list: 1, name: 'Nick', token: '312312' },
]

现在我想知道带有属性的对象的索引,以获取属性令牌的值。name='John'

如何解决问题?


答案 1

由于排序部分已经得到回答。我只是要提出另一种优雅的方法来获取数组中属性的索引Of

您的示例是:

var Data = [
    {id_list:1, name:'Nick', token:'312312'},
    {id_list:2, name:'John', token:'123123'}
]

您可以执行以下操作:

var index = Data.map(function(e) { return e.name; }).indexOf('Nick');

var Data = [{
    id_list: 1,
    name: 'Nick',
    token: '312312'
  },
  {
    id_list: 2,
    name: 'John',
    token: '123123'
  }
]
var index = Data.map(function(e) {
  return e.name;
}).indexOf('Nick');
console.log(index)

Array.prototype.mapInternet Explorer 7 或 Internet Explorer 8 上不可用。ES5 兼容性

这里是ES6和箭头语法,这更简单:

const index = Data.map(e => e.name).indexOf('Nick');

答案 2

如果你对使用 ES6 感到满意,数组现在具有 findIndex 函数。这意味着你可以做这样的事情:

const index = Data.findIndex(item => item.name === 'John');