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

JS开发:如何从对象中筛选最长任职教师及获取次要教师信息

筛选对象中任职天数最长/最短教师的解决思路

目标数据结构

{
    1252 = {
        [Monday, {
            Teacher1 = {
                Periods = [
                    [06/02/2023, 30/06/2023, 146 days]
                ]
            },
            Teacher2 = {
                Periods = [
                    [21/11/2022, 05/02/2023, 74 days]
                ]
            }
        }]
    }
}

该结构表示编号1252的条目下,周一有两位教师,各自拥有独立的任职时间段及对应天数。


需求1:选出任职天数最长的教师并生成指定数组

按以下步骤操作:

  1. 定位目标教师集合:直接访问编号1252下的周一教师数据,语法可根据你使用的语言调整,比如yourData[1252][Monday]。
  2. 提取教师核心信息:遍历每个教师,从其Periods中提取名称、起止日期、任职天数。假设每个教师只有一个时间段,提取后得到类似列表:
    [
        {name: "Teacher1", startDate: "06/02/2023", endDate: "30/06/2023", days: 146},
        {name: "Teacher2", startDate: "21/11/2022", endDate: "05/02/2023", days: 74}
    ]
    
    如果教师有多个时间段,需先将所有时间段的天数求和,再作为该教师的总任职天数。
  3. 按天数排序:将上述列表按days字段降序排列,排序后的第一个元素就是任职天数最长的主教师。
  4. 生成目标数组:按照要求的格式组合数据,最终得到:
    [[1252, "Monday", "Teacher1", "06/02/2023", "30/06/2023", 146]]
    

需求2:获取任职天数较少的第二位教师信息

基于需求1的排序结果:

  • 排序后的列表中,第二个元素(索引根据语言从0或1开始调整)就是任职天数较少的教师,直接提取其名称、起止日期、天数即可。
  • 如果存在超过2位教师的情况,若需求是取除最大值外的所有教师,可遍历排序列表从第二个元素开始的所有项;若仅需第二位,直接取对应索引元素即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:50:53