js算法 arr={data:{"data":{a:1}}取出返回brr={a:1}
时间: 2024-12-22 07:33:24 浏览: 10
在JavaScript中,如果你有一个嵌套的对象`arr`,其中包含键值对`data.data`并且该数据是一个对象,你需要提取出`a`对应的值并将其存储到一个新的简单对象`brr`中。你可以通过递归的方式来访问并复制这个值:
```javascript
function extractValue(obj, targetKey) {
if (obj && typeof obj === 'object') {
for (let key in obj) {
if (key === targetKey) {
return obj[key];
} else if (typeof obj[key] === 'object' && !Array.isArray(obj[key])) {
const result = extractValue(obj[key], targetKey);
if (result !== undefined) {
return result;
}
}
}
}
}
// 示例
const arr = { data: { a: 1 } };
const brr = { a: extractValue(arr, 'data.a') }; // 返回 { a: 1 }
console.log(brr); // 输出 { a: 1 }
```
在这个例子中,我们定义了一个函数`extractValue`,它接收一个对象和目标键名。如果找到匹配的目标键,并且其值不是数组,我们就返回该值。如果没有直接找到,我们会继续遍历对象的子属性。
阅读全文