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

如何过滤对象数组中管辖项为纯数字字符串的条目并完成排序?

解决方案

1. 先修正你的排序逻辑

你现在的排序代码缺少返回值,根本无法生效。需要按照jurisdiction→lastName→firstName的优先级依次对比,修正后的代码如下:

supervisorsObj.sort((a, b) => {
  // 先比管辖项,忽略大小写
  const jurisdictionDiff = a.jurisdiction.toLowerCase().localeCompare(b.jurisdiction.toLowerCase());
  if (jurisdictionDiff !== 0) {
    return jurisdictionDiff;
  }
  // 管辖项相同就比姓氏
  const lastNameDiff = a.lastName.toLowerCase().localeCompare(b.lastName.toLowerCase());
  if (lastNameDiff !== 0) {
    return lastNameDiff;
  }
  // 姓氏相同最后比名字
  return a.firstName.toLowerCase().localeCompare(b.firstName.toLowerCase());
});

2. 过滤纯数字管辖项

用Array.filter()配合正则/^\d+$/就能筛选掉jurisdiction是纯数字的条目——这个正则会匹配从开头到结尾全是数字的字符串,代码如下:

const filteredList = supervisorsObj.filter(item => !/^\d+$/.test(item.jurisdiction));

完整流程示例

把排序和过滤整合到一起,直接可用的完整代码:

// 假设这是API返回的原始数据
const apiData = {
  "supervisors": [
    {
        "jurisdiction": "u",
        "lastName": "Olson",
        "firstName": "Karson"
    },
    {
        "jurisdiction": "9",
        "lastName": "Heller",
        "firstName": "Robbie"
    },
    {
        "jurisdiction": "b",
        "lastName": "Cremin",
        "firstName": "Elijah"
    }
  ]
};

// 先复制一份数据避免修改原数组
let supervisors = [...apiData.supervisors];

// 第一步:排序
supervisors.sort((a, b) => {
  const jurisdictionDiff = a.jurisdiction.toLowerCase().localeCompare(b.jurisdiction.toLowerCase());
  if (jurisdictionDiff !== 0) return jurisdictionDiff;
  
  const lastNameDiff = a.lastName.toLowerCase().localeCompare(b.lastName.toLowerCase());
  if (lastNameDiff !== 0) return lastNameDiff;
  
  return a.firstName.toLowerCase().localeCompare(b.firstName.toLowerCase());
});

// 第二步:过滤
const finalList = supervisors.filter(item => !/^\d+$/.test(item.jurisdiction));

console.log(finalList);
// 输出结果:
// [
//   { jurisdiction: 'b', lastName: 'Cremin', firstName: 'Elijah' },
//   { jurisdiction: 'u', lastName: 'Olson', firstName: 'Karson' }
// ]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:15:43