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

JavaScript中如何克隆对象数组并批量生成1000份相同结构的副本

实现方案

你可以用Array.from直接生成指定长度的数组,同时按规则给每个对象属性赋值,代码如下:

// 1-1000数字转英文基数词工具函数
function numberToEnglish(num) {
  const ones = ['', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten', 'Eleven', 'Twelve', 'Thirteen', 'Fourteen', 'Fifteen', 'Sixteen', 'Seventeen', 'Eighteen', 'Nineteen'];
  const tens = ['', '', 'Twenty', 'Thirty', 'Forty', 'Fifty', 'Sixty', 'Seventy', 'Eighty', 'Ninety'];
  
  if (num === 1000) return 'Thousand';
  if (num < 20) return ones[num];
  if (num < 100) return tens[Math.floor(num / 10)] + (num % 10 ? ones[num % 10] : '');
  return ones[Math.floor(num / 100)] + 'Hundred' + (num % 100 ? numberToEnglish(num % 100) : '');
}

// 生成目标数组
const targetArray = Array.from({ length: 1000 }, (_, idx) => {
  const serialNum = idx + 1;
  return {
    name: `name${numberToEnglish(serialNum)}`,
    age: 20 + serialNum
  }
});

说明

  • 回调里的idx是数组索引从0开始,所以用idx + 1作为序号匹配你要的从21开始的年龄、nameOne的命名规则
  • 如果你不需要英文后缀,只需要数字后缀,直接把name字段的赋值改为name: name${serialNum}``即可,不需要引入转换函数
  • 这个方案是纯JS逻辑,和React框架无关,你可以直接在React组件的任意位置调用生成你需要的数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:45:01