循环数组修改数组中对象的属性名

1.写一个数组包含对象的简单代码:

const people = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 32 },
  { name: 'Charlie', age: 45 }
];

2. people 中的 name 属性修改为 fullName , 注: person.fullName 是在对象中添加属性,所以要利用 delete 对 name 属性进行删除 

people.forEach(person => {
  person.fullName = person.name;
  delete person.name;
  person.yearsOld = person.age;
  delete person.age;
});

总结:

遍历数组中的每个对象,并对每个对象执行以下操作:

  1. 创建一个新的属性“fullName”,将其赋值为原来的属性“name”的值。
  2. 使用delete关键字删除原来的属性“name”。
  3. 创建一个新的属性“yearsOld”,将其赋值为原来的属性“age”的值。
  4. 使用delete关键字删除原来的属性“age”。

这样,每个对象都会被修改为具有新的属性名

### 如何在编程中重命名数组对象的属性 在 JavaScript 中,可以通过多种方式来修改数组对象中的属性名(即键名)。以下是几种常见的方法: #### 方法一:使用 `map` 函数重新构建对象 可以利用 `Array.prototype.map()` 方法遍历数组并返回一个新的数组,在这个过程中定义新的键值对。 ```javascript const array = [ { oldKey: "value1", otherProperty: 42 }, { oldKey: "value2", otherProperty: 84 } ]; // 使用 map 创建新数组,同时更改键名为 newKey const newArray = array.map(item => ({ ...item, newKey: item.oldKey, // 将旧键映射到新键 oldKey: undefined // 删除原键 (可选) })); console.log(newArray); // 输出: [{newKey: "value1", otherProperty: 42}, {newKey: "value2", otherProperty: 84}] ``` 这种方法通过扩展运算符 (`...`) 复制原始对象的所有其他属性,并显式设置新的键值对[^4]。 --- #### 方法二:手动迭代并重建对象 如果不想使用高阶函数,也可以通过传统的循环实现相同效果。 ```javascript const array = [ { oldKey: "value1", otherProperty: 42 }, { oldKey: "value2", otherProperty: 84 } ]; for (let i = 0; i < array.length; i++) { const newItem = {}; Object.keys(array[i]).forEach(key => { if (key === "oldKey") { newItem["newKey"] = array[i][key]; // 更改键名 } else { newItem[key] = array[i][key]; // 保留原有键 } }); array[i] = newItem; } console.log(array); // 输出: [{newKey: "value1", otherProperty: 42}, {newKey: "value2", otherProperty: 84}] ``` 这种方式更加灵活,适合需要更复杂的逻辑场景[^4]。 --- #### 方法三:借助 Lodash 库简化操作 Lodash 是一个流行的实用工具库,提供了许多方便的方法用于处理数据结构。例如,可以用 `_.mapKeys` 或类似的辅助函数完成任务。 ```javascript const _ = require('lodash'); const array = [ { oldKey: "value1", otherProperty: 42 }, { oldKey: "value2", otherProperty: 84 } ]; const renamedArray = _.map(array, obj => _.reduce(obj, (result, value, key) => { result[key === "oldKey" ? "newKey" : key] = value; return result; }, {}) ); console.log(renamedArray); // 输出: [{newKey: "value1", otherProperty: 42}, {newKey: "value2", otherProperty: 84}] ``` 这里使用了 `_._reduce` 配合条件判断动态调整键名。 --- ### 总结 以上三种方法都可以有效地解决数组对象中键名的重命名问题。推荐优先考虑 **方法一** 的简洁性和易读性;对于大规模或复杂的数据转换需求,则可以选择引入第三方库如 Lodash 提供的支持功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值