获取对象并将其用作自动完成的源

时间:2014-06-24 14:12:10

标签: javascript jquery jquery-ui

我需要使用Jquery UI进行自动填充。我的对象看起来像这样。

  

“last_name”:“A”,“first_name”:“A”,“email_addr”:“A@A.COM”

我无法控制这一点。这是从数据库查询返回数据时的格式。我想将它用作自动完成的源。我有这个:

    $( "#inputVisitorLastName" ).autocomplete({
source: visitorsDrop
});

其中visitorDrop是这些对象的列表。什么是最好的方法来解决这个问题,我将如何做到这一点?有没有一种我不知道的方法来更改对象以包含它们需要的值和标签标签?我应该尝试将对象转换为字符串吗?谷歌也提出了如何做到这一点令人困惑的结果。我刚试过这样的事情:

var intArr = [visitorsDrop.last_name];

它所做的数组是未定义的。我对Javascript很新,不知道出了什么问题;有人可以帮帮我吗?

编辑:自从有人问到,来自者访问者通过JSON和vb.net分配了它的值,这使得数据库查询;所以它是这样的:

var visitorsDrop = that.getVisitors();

1 个答案:

答案 0 :(得分:0)

需要将对象数组转换为字符串数组吗?听起来像是map的工作!

$( "#inputVisitorLastName" ).autocomplete({
    source: visitorsDrop.map(function(o) { return o.last_name; })
});

foo.map(...)通过将foo(现有数组)的每个元素传递到函数中并使用每个函数调用的返回值作为新数组中该位置的值来构建新数组。所以,在这里,visitorsDrop中的每个对象都以o的形式传递给函数,然后你得到一个新的数组,里面填充了每个对象的last_name值。

要支持旧版浏览器,您可能需要提供polyfill