我有一个关于数组的小问题,该数组使用带有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)
请建议我正确的事情。
谢谢
答案 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 }