如何通过查找属性的值来获取元素的索引



这是一个棘手的问题。我有这组面板,我想做一个函数,让我找到这些元素在array中的位置。然而,在该array中,存在subarrays。在这种情况下,我只想得到父arraykey

示例:

[
{
"name":"apple"
},
{
"name":"bone"
},
[
{
"name":"banana"
},
{
"name":"tea"
}
]
]

所以,如果我把apple放在函数中,它会返回0,如果我想找到名为bone的元素,它会向我返回索引1,如果我想要找到banana的索引,它会给我返回2tea也会给我返回2

任何人都有一个想法,我如何才能以一种干净的方式实现这一点?

谢谢!

const input = [{name:"apple"},{name:"bone"},[{name:"banana"},{name:"tea"}]];
const myFind = (name) => input.findIndex(e => 
Array.isArray(e) // check if element is array
? e.some(x => x.name === name) // if yes, check if contains name
: e.name === name // if no, check if elements name is equal name 
)
console.log('bone:', myFind('bone'))
console.log('banana:', myFind('banana'))
console.log('tea:', myFind('tea'))

最新更新