javascript - 如何通过查找属性的值来获取元素的索引?
问题描述
有点棘手的问题。我有这组面板,我想做一个函数,让我可以找到array
这些元素的位置。不过,在这array
里面,有subarrays
。在这种情况下,我只想获取key
parent 的array
。
例子:
[
{
"name":"apple"
},
{
"name":"bone"
},
[
{
"name":"banana"
},
{
"name":"tea"
}
]
]
所以,如果我apple
输入函数,它会返回 me 0
,如果我想找到具有 name 的元素bone
,它会返回索引1
,如果我想找到 的索引banana
,它会返回 me2
并且tea
也会返回 me 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'))
推荐阅读
- java - 当画布表面视图位于另一个画布的顶部时,无法将其舍入
- api - 在颤动中同时获取数据
- javascript - 替换 async-await 到 then
- java - Java - 屏蔽符号位会导致意外行为
- python - Json 文件未在 for 循环中从 python 字符串数组正确导出
- reactjs - Typescript with React:设置渲染反应组件的类型
- python - 将字典附加到列表
- javascript - 如何防止多个脚本文件加载
- java - @OnTimer 方法在触发时接收空引用
- log4net - Log4net 中的 FileAppender 和 RollingFileAppender 中的变量文件名