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

如何从API返回的字符串数组提取价格并按升序排序?

最优实现方案:提取汽车价格并排序

实现步骤与代码

直接通过原生数组方法结合正则表达式完成,兼顾性能与可读性:

let luxcar_data = ["Ferrari70", "Bugatti45", "McLaren17", "Lamborghini41", "Rolls52",  "Aston30", "Koenigsegg19", "Pagani28", "Lamborghini36"];

// 转换并提取数据
const processedCars = luxcar_data.map(car => {
  const [_, name, priceStr] = car.match(/([A-Za-z]+)(\d+)/);
  return {
    name,
    price: Number(priceStr)
  };
});

// 按价格升序排序
const sortedCars = processedCars.sort((a, b) => a.price - b.price);

console.log(sortedCars);

关键细节说明

  • 正则拆分:用/([A-Za-z]+)(\d+)/精准匹配品牌名(连续英文字母)和价格(连续数字),通过解构赋值快速获取分组结果。
  • 类型转换:将价格字符串转为数字类型,避免字符串排序时出现"17">"70"的逻辑错误。
  • 高效排序:原生sort方法针对数组排序做了性能优化,通过a.price - b.price实现升序排列,逻辑清晰直接。

异常处理(可选)

如果API返回数据存在格式异常项,可添加过滤逻辑确保结果有效性:

const processedCars = luxcar_data.map(car => {
  const match = car.match(/([A-Za-z]+)(\d+)/);
  if (!match) return null;
  const [_, name, priceStr] = match;
  return {
    name,
    price: Number(priceStr)
  };
}).filter(Boolean); // 过滤null/undefined无效项

内容的提问来源于stack exchange,提问作者ミツオ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 23:57:20