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
相关产品推荐
相关产品推荐

