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

不使用ES6语法按对象props每一项自动拷贝生成数组元素的实现方法

实现方案
// ES5通用对象浅拷贝方法,自动遍历复制所有自有属性
function copyObj(obj) {
  var newObj = {};
  for (var key in obj) {
    if (obj.hasOwnProperty(key)) {
      newObj[key] = obj[key];
    }
  }
  return newObj;
}

var desiredOutput = [];
// 遍历原数组所有元素,兼容多对象场景
for (var i = 0; i < items.length; i++) {
  var currentItem = items[i];
  var propList = currentItem.props;
  // 按props长度生成对应数量的副本
  for (var j = 0; j < propList.length; j++) {
    // 自动复制原对象所有属性,无需手动指定字段
    var itemCopy = copyObj(currentItem);
    // 替换props为仅包含当前项的数组
    itemCopy.props = [copyObj(propList[j])];
    desiredOutput.push(itemCopy);
  }
}

代码说明

  • 全程使用ES5语法实现,无任何ES6特性,符合限制要求
  • 通过通用拷贝方法自动遍历对象属性,无需手动指定id、name等固定字段,原对象新增属性时无需修改转换逻辑
  • 对props内部的子对象也做了独立拷贝,避免引用关联导致原数据被意外修改
  • 兼容原items数组存在多个根对象的场景,不局限于单个元素的测试用例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:24:05