$ .unique(array)不适用于具有多个单词的数组元素

时间:2015-08-10 07:54:54

标签: jquery-autocomplete

 var availableNames=['Hello India', 'Hello India', 'Test', 'Test']
    $.unique(availableNames);
    $("#corpName").autocomplete({
                source : availableNames,
                minLength : 4
            });

availableNames是我自动完成的数组源。我想在列表中显示所谓的jquery唯一函数的唯一值。 这个独特的功能适用于单词,例如“Hello'但不是像“印度你好”这样的两个单词串。它展示了两个“Hello India'在下拉菜单中,你好了一下。

请建议我如何在下拉列表中仅显示唯一值。 谢谢。

1 个答案:

答案 0 :(得分:0)

你必须编写自己的功能。有两种方法可以做到这一点:

使用过滤器:

// returns a new array with unique entries
Array.prototype.unique = function() {
  return this.filter(function(el, index, oThis) {
    return index === oThis.indexOf(el);
  });
}

编辑这是一个真正的原型版本,它会更改原始数组

Array.prototype.unique2 = function() {
    var c=this.length;
    while(c--)
        c===this.indexOf(this[c])||this.splice(c,1);
};

你可以在这个小提琴中测试两个版本:http://jsfiddle.net/6mpqaxhk/