js 有一个数组为 a=[a:1,b:2,c=[[a:2,b:3,c=[[a:3,d:4c=[]]]],[a:4,d:5,c=[[a:5,b:6,c=[]]]]]];找到a为5的数据
时间: 2023-08-08 11:09:54 浏览: 125
可以使用递归函数来查找数组中的某个元素,以下是一个示例代码:
```javascript
function findElement(arr, target) {
for (let i = 0; i < arr.length; i++) {
if (typeof arr[i] === 'object' && arr[i] !== null) {
const result = findElement(arr[i], target);
if (result) {
return result;
}
} else if (arr[i] === target) {
return arr;
}
}
return null;
}
const a = [{ a: 1, b: 2, c: [[{ a: 2, b: 3, c: [[{ a: 3, d: 4, c: [] }]] }], [{ a: 4, d: 5, c: [[{ a: 5, b: 6, c: [] }]] }]] }];
const target = 5;
const result = findElement(a, target);
console.log(result); // [{ a: 5, b: 6, c: [] }]
```
在上面的示例代码中,我们定义了一个名为 `findElement` 的递归函数,该函数接受两个参数,第一个参数为要查找的数组,第二个参数为要查找的目标元素。函数首先遍历数组中的每个元素,如果当前元素是一个对象或数组,则递归调用 `findElement` 函数来查找目标元素。如果当前元素是目标元素,则返回该元素所在的数组。如果数组中没有包含目标元素,则返回 `null`。
在本题中,我们可以将数组 `a` 和目标元素 `5` 作为参数传递给函数 `findElement` 来查找目标元素。函数返回的结果为包含目标元素的对象数组 `[{ a: 5, b: 6, c: [] }]`。
阅读全文