为 jquery 自动完成重新格式化数组

Posted

技术标签:

【中文标题】为 jquery 自动完成重新格式化数组【英文标题】:Reformatting an array for jquery autocomplete 【发布时间】:2015-08-26 05:30:15 【问题描述】:

我有一个如下所示的数组:

thing1,thing2,thing3

我需要将其重新格式化为如下所示:

[ 
 value: 'thing1', data: 'thing1' , 
 value: 'thing2', data: 'thing2' , 
 value: 'thing3', data: 'thing3' , 
]

我当前的功能看起来像这样,但显然不起作用:

function combine_ids(ids) 
   return (ids.length ? " [  value: '" + ids.join("'," + " data: '" + ids + " '  ] ")  : "");

【问题讨论】:

查看此链接:***.com/questions/15009448/… @MuhammadBilal,这与我的要求无关。 【参考方案1】:

假设你的数组看起来像这样

var arr = ["thing1","thing2","thing3"]

你可以像这样使用.map()

var result = arr.map(function(item) 
  return "value": item, "data": item; 
);

这将返回这个

[
 "value":"thing1","data":"thing1",
 "value":"thing2","data":"thing2",
 "value":"thing3","data":"thing3"
]

你可以像这样改变你的方法

function combine_ids(arr)
  return arr.map(function(item) 
     return "value": item, "data": item; 
  );


var result = combine_ids(arr);

var arr = ["thing1","thing2","thing3"]
function combine_ids(arr)
  return arr.map(function(item) 
     return "value": item, "data": item; 
  );


var result = combine_ids(arr);
alert(JSON.stringify(result));

【讨论】:

【参考方案2】:

试试这个

function combine_ids(ids) 
    var Aobj=[];
    for (var x in ids)
       Aobj.push('value':ids[x],'data' : ids[x])
    
    return Aobj;


combine_ids(['thing1','thing2','thing3'])

【讨论】:

以上是关于为 jquery 自动完成重新格式化数组的主要内容,如果未能解决你的问题,请参考以下文章

rails 为 jquery-ui 自动完成小部件格式化 json.jbuilder

导航 json 文件以创建 jquery 自动完成所需的数组

在 jquery 自动完成插件中,数据没有被解析为 json

重新定位 Jquery UI 自动完成结果框

停止 jQuery 自动完成以过滤/搜索结果并填充整个源数组数据

用 PHP 数组填充 JQuery 自动完成