有点棘手的问题。我有这组面板,我想制作一个函数来让我找到这个元素在 array
中的位置。然而,在这个array
中,有subarrays
。在这种情况下,我只想获取父 key
的 array
。
示例:
[
{
"name":"apple"
},
{
"name":"bone"
},
[
{
"name":"banana"
},
{
"name":"tea"
}
]
]
因此,如果我将 apple
放在函数中,它会返回我 0
,如果我想找到名称为 bone
的元素,它会返回我的索引 {{ 1}},如果我想找到 1
的索引,它会返回我 banana
,2
也会返回我 tea
。
任何人都有想法,我如何以干净的方式实现这一目标?
谢谢!
答案 0 :(得分:4)
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'))