这是一个棘手的问题。我有这组面板,我想做一个函数,让我找到这些元素在array
中的位置。然而,在该array
中,存在subarrays
。在这种情况下,我只想得到父array
的key
。
示例:
[
{
"name":"apple"
},
{
"name":"bone"
},
[
{
"name":"banana"
},
{
"name":"tea"
}
]
]
所以,如果我把apple
放在函数中,它会返回0
,如果我想找到名为bone
的元素,它会向我返回索引1
,如果我想要找到banana
的索引,它会给我返回2
,tea
也会给我返回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'))