0

我正在使用 C# 和 ASP.NET MVC3。我有一个javascript数组,当页面加载时基于一些数据创建:

var agencyData = [];
@foreach(var agency in Model.Agencies)
{
    <text>agencyData.push({value: '@agency.AgencyID', label: '@agency.Name'});</text>                    
}   

该数组按字母顺序排序label

我在页面上有将项目添加到此数组的功能。不幸的是,它将它添加到数组的末尾。我想将该项目添加到数组中的适当位置,以便数组保持按字母顺序排序。

此外,数组很大,如 8000 项。所以我不认为在每次添加后都使用数组是一个不错的选择。

任何人都知道如何做到这一点?

4

1 回答 1

0

为新元素找到合适的索引(使用二分法搜索

切片和连接数组

var agencyData = ["alpha", "beta", "gamma"];

var calculateIndexForInsertion = function(text, start, end){
    //add real search here
    return 2;
}
var newAgency = "c";

var index = calculateIndexForInsertion(newAgency , 0, agencyData.length);

agencyData = agencyData.slice(0, index).concat([newAgency]).concat(agencyData.slice(index))
于 2013-07-14T17:21:01.053 回答