const data = [ { id: 1, children: [ { id: 2, children: [ { id: 3, children: [ { id: 4 } ] } ], } ] },{ id: 11, children: [ { id: 22, children: [ { id: 33, children: '' } ], } ] } ];拿到最里层的id
时间: 2024-02-10 12:05:52 浏览: 72
可以使用递归来实现拿到多层数组中最里层的id,代码如下:
```javascript
function getInnermostId(arr) {
if (Array.isArray(arr)) {
for (let i = 0; i < arr.length; i++) {
const id = getInnermostId(arr[i].children);
if (id !== null) {
return id;
}
}
} else if (typeof arr === 'object' && arr.hasOwnProperty('id')) {
return arr.id;
}
return null;
}
const data = [
{
id: 1,
children: [
{
id: 2,
children: [
{
id: 3,
children: [
{
id: 4
}
]
}
],
}
]
},
{
id: 11,
children: [
{
id: 22,
children: [
{
id: 33,
children: ''
}
],
}
]
}
];
const id = getInnermostId(data);
console.log(id); // 4
```
这个函数接收一个多层数组作为参数,如果传入的是一个数组,就递归地遍历它的每个元素的children属性,如果元素是一个对象且包含一个id属性,就返回这个id。如果传入的不是数组或对象中没有id属性,就返回null。最终返回的是多层数组中最里层的id。在这个例子中,最后得到的id是4。
阅读全文
相关推荐

















