js循环修改数组中对象的key,里面有数组继续循环修改
时间: 2024-05-07 18:22:52 浏览: 76
可以使用嵌套的循环来修改数组中对象的 key,如果对象中还有数组,也可以使用递归来实现。以下是一个示例代码:
```javascript
const data = [
{ id: 1, name: 'John', items: [{ id: 101, name: 'item 1' }, { id: 102, name: 'item 2' }] },
{ id: 2, name: 'Jane', items: [{ id: 201, name: 'item 3' }, { id: 202, name: 'item 4' }] }
];
for (let i = 0; i < data.length; i++) {
const obj = data[i];
obj.newKey = obj.id; // 修改 key
for (let j = 0; j < obj.items.length; j++) {
const item = obj.items[j];
item.newKey = item.id; // 修改 key
}
}
console.log(data);
```
在上面的代码中,我们使用了两个嵌套的循环,第一个循环遍历数组中的每个对象,第二个循环遍历对象中的 items 数组。在每个循环中,我们都可以修改对象或数组中的 key。
如果对象中还有嵌套的数组,我们可以使用递归来实现:
```javascript
function updateKey(obj) {
obj.newKey = obj.id; // 修改 key
if (obj.items) { // 如果对象中还有 items 数组
for (let i = 0; i < obj.items.length; i++) {
updateKey(obj.items[i]); // 递归调用自身
}
}
}
for (let i = 0; i < data.length; i++) {
updateKey(data[i]);
}
console.log(data);
```
在上面的代码中,我们定义了一个 `updateKey` 函数,它可以递归地遍历对象中的数组并修改 key。我们在第一个循环中调用该函数来更新所有对象的 key。
阅读全文