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

JavaScript如何按优先级筛选生成符合积分阈值要求的响应数据

实现方案

思路说明

  • 首先提取lifePriority中的所有物品key,按照优先级值从小到大排序(数值越小优先级越高,优先兑换)
  • 初始化累计积分变量为0,初始化结果对象为空
  • 遍历排序后的物品列表:
    • 检查当前物品是否在availbility中存在对应的积分值
    • 计算加上当前物品积分后的总积分,如果不超过AvailblePointsToBuy,就把该物品加入结果对象,同时累加积分
    • 如果超过就直接跳过当前物品
  • 遍历完成后输出结果对象即可

完整实现代码

// 原始变量
const AvailblePointsToBuy = 100;
const lifePriority = { "cloth":1,"bike":2,"cycle":3 };
const availbility = {"cycle":40,"car":80,"cloth":10,"bike":50 };

// 1. 按优先级排序物品key
const sortedItems = Object.keys(lifePriority).sort((a,b) => lifePriority[a] - lifePriority[b]);

let totalPoints = 0;
const result = {};

// 2. 遍历筛选符合条件的物品
for (const item of sortedItems) {
  // 跳过不在可用列表里的物品
  if (!availbility.hasOwnProperty(item)) continue;
  const currentPoint = availbility[item];
  // 检查加上当前积分是否超限额
  if (totalPoints + currentPoint <= AvailblePointsToBuy) {
    result[item] = currentPoint;
    totalPoints += currentPoint;
  }
}

console.log(result); // 输出 { cloth: 10, bike: 50, cycle: 40 }

代码说明

  • 排序逻辑保证了完全按照lifePriority指定的优先级顺序选择物品,不会出现低优先级先选的情况
  • 会自动过滤lifePriority里存在但availbility里没有的物品
  • 累计积分逻辑严格控制总消耗不超过设定的上限值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:15:04