如何在JavaScript中将find()与findIndex一起使用

时间:2018-06-28 10:27:17

标签: javascript arrays find

我有一个关于数组的小问题,该数组使用带有findIndex的find()来查找元素。我有演示代码,当我仅对数组变量使用find()方法时可以使用。

    var a = [{
      _id: 'newlead',
      count: 45
    }, {
      _id: 'contact',
      count: 12
    }, {

    leadCount: [{
          _id: 'newlead',
          count: 45
        }, {
          _id: 'contact',
          count: 12
        }]
    }]

var findElement = a.find(a => {
  return a._id === 'newlead'
});

console.log(findElement);

实际的问题是我要检入一个数组,' leadCount '是否存在,如果存在,那么我正在执行此操作,我有一个代码。此代码引发错误“ TypeError:a.findIndex(...)。find不是函数

let data = a.findIndex( element => {
  return 'leadCount' in element
}).find(e => {
    return e._id === 'newlead'
})

console.log(data)

请建议我正确的事情。

谢谢

2 个答案:

答案 0 :(得分:2)

您可以尝试以下方法:

 var a = [{
  _id: 'newlead',
  count: 45
}, {
  _id: 'contact',
  count: 12
}, {

leadCount: [{
      _id: 'newlead',
      count: 45
    }, {
      _id: 'contact',
      count: 12
    }]
}];



let data = a.find(e => 'leadCount' in e) || {leadCount: []}.leadCount.find(e => e._id === 'newlead')

console.log(data)

答案 1 :(得分:0)

这可能有效:

a.find(i => i.leadCount).leadCount.find(i => i._id === 'newlead')

礼物:

{ _id: 'newlead', count: 45 }