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

Reformatting an array for jquery autocomplete

本文关键字:格式化 数组 jquery      更新时间:2023-09-26

我得到了一个像这样的数组:

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 + " ' } ] ")  : "");
}

假设你的数组是这样的

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));

试试这个

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'])