let result = arr.find(item => { if (item.id === b) { return true; } if (Array.isArray(item.cols)) { return item.cols.some(col => { if (Array.isArray(col.children)) { return col.children.some(child => child.id === b); } return false; }); } return false; });这个封装成函数
时间: 2023-11-27 11:53:48 浏览: 82
js代码-let newArrayData=arrayData.map(it
可以将这段代码封装成一个函数,如下所示:
```
function findItemById(arr, id) {
const result = arr.find(item => {
if (item.id === id) {
return true;
}
if (Array.isArray(item.cols)) {
return item.cols.some(col => {
if (Array.isArray(col.children)) {
return col.children.some(child => child.id === id);
}
return false;
});
}
return false;
});
return result;
}
```
这个函数接收一个数组和一个目标id作为参数,返回数组中与目标id匹配的项。如果没有匹配的项,则返回undefined。你可以使用这个函数来查找一个嵌套数组中的项,例如:
```
const arr = [
{
id: 1,
cols: [
{
id: 2,
children: [
{
id: 3,
value: 'hello'
},
{
id: 4,
value: 'world'
}
]
}
]
}
];
const result = findItemById(arr, 3);
console.log(result); // { id: 3, value: 'hello' }
```
阅读全文