【问题标题】:How to use find() with findIndex in JavaScript如何在 JavaScript 中使用 find() 和 findIndex
【发布时间】:2018-06-28 10:27:16
【问题描述】:

我有一个关于使用带有 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 is not a function

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

console.log(data)

请给我正确的建议。

谢谢

【问题讨论】:

  • 你为什么用findIndex而不是find
  • 你在寻找什么输出?
  • 我需要这个对象在数据变量{ _id: 'newlead', count: 45 }

标签: javascript arrays find


【解决方案1】:

你可以试试这个:

 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多