0

对于不超过一千个可用选项的字段,下拉列表似乎可以胜任。但是,我有两个数以万计的数组,因此将它们放入组合框将成为浏览器的杀手。我的猜测是最好是一个简单的文本输入,但具有自动完成功能。首先从 开始自动完成jQueryUI,但我发现它与二维数组不兼容,例如:

var fkOptionList = [[1, 'Orange'],[2, 'Banana'],[3, 'Coconut']]

因为我的数组是以这种方式编写的,所以我不想重写它们。也许您知道解决此问题的方法,或者知道处理如此大量选项的更好方法?

4

2 回答 2

1

假设您的意思是:

var fkOptionList = [[1,'Orange'],[2,'Banana'],[3,'Coconut']];

您可以使用映射函数(例如_.mapunderscore.js 中的例程)将二维数组重写为必要的一维数组。在加载 ajax 的自动完成方面也付出了很多努力,所以如果在服务器端处理成一维数组更容易,那可能是一个不错的选择。

于 2013-10-28T19:54:14.457 回答
1

不要害怕通过一个map或一个循环运行它以使其变平。

myNewArray = [[1, 'Orange'],[2, 'Banana'],[3, 'Coconut']].map(function(el) {
    return el[1];
});

这对性能的影响可以忽略不计,尤其是当您使用诸如lodash 之类的函数库时;

于 2013-10-28T19:57:37.370 回答