You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改JavaScript对象结构:转换数组对象属性格式

嗨,我来帮你搞定这个数组结构转换的问题~

解决数组结构转换问题

首先,要把原数组里的每个对象从{name: ..., code: ...}转成{type: "Grp", code: ...},最直接高效的方式就是用数组的map()方法,它会遍历原数组并返回一个全新的数组,完美适配这个场景:

基础实现代码

var groupArray = [{ name: "blabla bla", code: "1" }, { name: "blabla bla2", code: "12" }, { name: "blabla bla3", code: "123" }];

// 执行数组转换
var transformedArray = groupArray.map(item => ({
  type: "Grp",
  code: item.code
}));

console.log(transformedArray);
// 输出结果:[{ type: "Grp", code: "1" }, { type: "Grp", code: "12" }, { type: "Grp", code: "123" }]

代码解释

  • map()会遍历原数组的每一个元素(这里用item指代每个对象)
  • 对每个元素,我们返回一个新对象:固定type为"Grp",同时保留原对象的code属性
  • 箭头函数() => ({ ... })的写法是为了直接返回对象字面量,避免语法歧义

针对你提供的JSFiddle片段优化

你给出的代码片段里有几个小问题需要修正,比如this指向混乱、字符串拼接逻辑冗余,这里帮你调整成更健壮的版本:

function update() {
  // 先完成数组结构转换
  var transformedArray = this.groupArray.map(item => ({
    type: "Grp",
    code: item.code
  }));

  // 如果需要把code拼接成空格分隔的字符串
  var codeString = transformedArray.map(elm => elm.code).join(" ");
  
  alert(codeString); // 会弹出 "1 12 123"
}

修正点说明

  1. 先完成数组转换,再处理后续的字符串拼接逻辑,流程更清晰
  2. 用join(" ")代替手动循环拼接,代码更简洁高效
  3. 箭头函数自动继承外层的this,避免了回调里this指向错误的问题

内容的提问来源于stack exchange,提问作者infodev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:09:51