以下是实现该需求的代码:

// 假设数组对象为gifts
let gifts = [
  {name: 'gift1', weight: 2},
  {name: 'gift2', weight: 3},
  {name: 'gift3', weight: 1},
  {name: 'gift4', weight: 4},
  {name: 'gift5', weight: 5}
];

// 按照weight从小到大排序
gifts.sort((a, b) => a.weight - b.weight);

// 逐一勾选直至选满总赠送件
let selected = [];
let sendNum = 0;
let totalGiftCount = 10; // 假设总赠送件数为10
for (let gift of gifts) {
  selected.push(gift);
  sendNum += 1;
  if (sendNum >= totalGiftCount) {
    break;
  }
}

// 输出选中的礼品
console.log(selected);

解释一下代码的每一步:

  • 首先定义了一个数组对象 gifts,包含了每个礼品的名称和重量信息。
  • 然后使用 sort 方法按照 weight 从小到大排序。
  • 接着定义了一个空数组 selected 和一个计数器 sendNum,用来记录已选中的礼品和已选中的总数量。
  • 最后使用 for 循环逐一勾选礼品,并判断是否已选满总赠送件。如果已选满,则跳出循环。
  • 最后输出选中的礼品。

需要注意的是,该代码仅是一种实现方式,具体实现可能会根据具体需求有所不同。例如,如果要实现随机勾选礼品的功能,可以使用 Math.random() 函数来随机选取礼品

js中数组对象按照weight从小到大顺序排序逐一勾选selectedsendNum为数量勾选至选满总赠送件总赠送件数为totalGiftCount

原文地址: https://www.cveoy.top/t/topic/eB6g 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录