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

.NET Core 3.1 Razor页面按值排序AJAX响应键值对对象并保留键的方案

代码修改方案

你需要先将原始对象转换为同时保留键、值的二维数组再排序,原代码中字符串用数值减号比较的逻辑不生效,且未适配希腊语字符的排序规则,修改后的完整success回调如下:

success: function (data) {
    // 将对象转为[[键, 值]]格式的数组,避免丢失键信息
    const sortedList = Object.entries(data)
        .sort((entryA, entryB) => {
            // 按值做希腊语区域排序,保证字符排序符合预期
            return entryA[1].localeCompare(entryB[1], 'el');
        });

    grpDrpdwn.append(
        $('<option>', { value: "" }).text('Select a Group')
    );
    // 遍历排序后的数组生成下拉选项
    $.each(sortedList, function (_, entry) {
        grpDrpdwn.append(
            $('<option>', { value: entry[0] })
                .text(entry[1])
        );
    });
}

实现说明

  • Object.entries() 会把你返回的键值对对象转为嵌套数组格式,每个子项第一位是原键、第二位是原值,不会丢失任何信息
  • localeCompare 传入希腊语区域编码el,可以保证希腊语特殊字符的排序符合本地语言规则,排序结果和你给出的预期完全一致
  • 遍历排序后的数组生成选项,既保留了原键作为option的value,又实现了按文本值排序的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:15:04