Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数组转换为对象数组_Javascript_Arrays_Angularjs_Object_Underscore.js - Fatal编程技术网

Javascript 将数组转换为对象数组

Javascript 将数组转换为对象数组,javascript,arrays,angularjs,object,underscore.js,Javascript,Arrays,Angularjs,Object,Underscore.js,我有以下数组列表 var data = [ "USA", "Denmark", "London"]; 我需要把它转换成这种形式 var data = [ { "id" : 1, "label": "USA" }, { "id" : 2, "label": "Denmark" }, { "id" : 3, "label": "London" } ]; 谁能告诉我如何做到这一点 使用Array.map非常简单 简单版本: var convertedData = [] for (var i

我有以下数组列表

var data = [ "USA", "Denmark", "London"];
我需要把它转换成这种形式

var data = [
 { "id" : 1, "label": "USA" },
 { "id" : 2, "label": "Denmark" },
 { "id" : 3, "label": "London" }
];
谁能告诉我如何做到这一点

使用Array.map非常简单

简单版本:

var convertedData = []
for (var i in data){
  convertedData.push({id: i+1, label: data[i]});
}

data = convertedData; //if you want to overwrite data variable
您可以使用forEach在数据数组中循环

var data = [ "USA", "Denmark", "London"];
var demArray =[];
data.forEach(function(item,index){
demArray.push({
 id:index+1,
 label:item
})

})
console.log(demArray)
不支持旧浏览器的方式:

var data = [ "USA", "Denmark", "London"];
var demArray =[];
data.forEach(function(item,index){
demArray.push({
 id:index+1,
 label:item
})

})
console.log(demArray)
var res = _.map(data, function(p, i){
    return {id: i + 1, label: p};
});