【问题标题】:What is the best way to find index of object from array of objects - javascript从对象数组中查找对象索引的最佳方法是什么 - javascript
【发布时间】:2020-06-27 07:47:17
【问题描述】:

您好,我正在尝试使用键名查找对象的索引。

这就是我尝试获取索引的方式:

var Obj = [
  {
    BData: [
      {id: '1', name: 'C'},
      {id: '2', name: 'Java'},
    ]
  },
  {
    CData: [
      {ccode: '010', cname: 'US'}
    ]
  },
  {
    PData: [
      {id: '21', pname: 'pen'}
    ]
  }
];
var index = Obj.findIndex(x => x.CData);

使用上面的 sn-p 从外面我可以得到索引,但在实际实现中得到 -1,即使 key 也存在。数据也与上面类似,只是没有得到原因。

【问题讨论】:

  • 您可以尝试将其与未定义的var index = Obj.findIndex(x => typeof x.CData !== 'undefined'); 进行比较。在上述情况下,很难猜出您为什么会得到-1

标签: javascript arrays object indexing


【解决方案1】:

您有一个对象数组,其索引为 0、1、2。

x => x.CData 不会返回任何内容。 所以你需要找到'CData'的索引作为该数组中对象的键。

Obj.findIndex(x => Object.keys(x).indexOf('CData') > -1 )

请尝试这种方式。 希望这会有所帮助。

【讨论】:

    【解决方案2】:

    findIndex() 方法返回索引,如果该函数返回 true,则当前您没有返回任何内容。所以修改你的代码是这样的: var index = Obj.findIndex(x => {return x.CData});

    【讨论】:

      猜你喜欢
      • 2010-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多