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

JavaScript生成cartItems数组:随机12位EAN生成失败及重复问题求助

问题解决:生成随机12位EAN并避免数组元素重复

问题原因分析

  1. 无法生成12位EAN:原代码中Math.floor(100000 + Math.random() * 900000) + 10000的计算结果是7位数字(范围110000~1010000),完全达不到12位的要求。
  2. 数组元素EAN全部相同:new Array(500).fill(...)会把同一个对象实例填充到数组所有位置,所有cartItems元素共享同一个对象引用,ean值在填充时仅计算一次,因此所有元素的EAN完全一致。

修正后的代码

const generate12DigitEAN = () => {
  // 生成100000000000 到 999999999999 之间的随机整数
  return Math.floor(Math.random() * 900000000000) + 100000000000;
};

const requestParameters = {
  id: "530d275e-5de1-466d-86fe-3993a2563fb6",
  cartItems: Array.from({ length: 500 }, () => ({
    additionalInfo: '',
    brand: '',
    replace: false,
    basicQuantityUnit: 'KPL',
    collectingPriority: 1000,
    ean: generate12DigitEAN(),
    id: '0200097823340',
    itemCount: '1'
  }))
};

console.log(requestParameters);

改动说明

  • 生成12位EAN:通过Math.floor(Math.random() * 900000000000) + 100000000000生成范围在100000000000到999999999999的随机整数,确保是标准12位数字。
  • 避免元素重复引用:使用Array.from({ length: 500 }, () => ({...})),每次迭代都会创建新的对象实例,每个cartItems元素都是独立个体,ean值会在每次创建对象时重新计算,保证随机性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:10:26