重新格式化数组以进行jquery自动完成

时间:2015-06-10 19:09:09

标签: javascript arrays

我有一个看起来像这样的数组:

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

试试这个

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