Javascript 将字符串数组转换为对象数组

Javascript 将字符串数组转换为对象数组,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我有一个字符串数组: ["14: London", "15: Manchester", "16: Bristol"] 我需要将其更改为如下所示的对象数组: [{14: "London"}, {15: "Manchester"}, {16: "Bristol"}] 我假设最好的方法是首先迭代数组并拆分每个字符串,然后将其转换为对象,然后再推回数组 我真的不知道如何使它工作,所以任何帮助将不胜感激 感谢您抽出时间使用方法生成数组 var arr=[“14:伦敦”、“15:曼彻斯特”、“16:布

我有一个字符串数组:

["14: London", "15: Manchester", "16: Bristol"]
我需要将其更改为如下所示的对象数组:

[{14: "London"}, {15: "Manchester"}, {16: "Bristol"}]
我假设最好的方法是首先迭代数组并拆分每个字符串,然后将其转换为对象,然后再推回数组

我真的不知道如何使它工作,所以任何帮助将不胜感激

感谢您抽出时间

使用方法生成数组

var arr=[“14:伦敦”、“15:曼彻斯特”、“16:布里斯托尔”];
//迭代数组
var res=arr.map(函数(v){
//根据“”拆分值:`
var splitArr=v.split(“:”),
//初始化对象
obj={};
//定义属性值
obj[splitArr[0].trim()]=splitArr[1].trim();
//返回生成的对象
返回obj;
})
控制台日志(res)使用方法生成数组

var arr=[“14:伦敦”、“15:曼彻斯特”、“16:布里斯托尔”];
//迭代数组
var res=arr.map(函数(v){
//根据“”拆分值:`
var splitArr=v.split(“:”),
//初始化对象
obj={};
//定义属性值
obj[splitArr[0].trim()]=splitArr[1].trim();
//返回生成的对象
返回obj;
})
控制台日志(res)
var arr=[“14:伦敦”、“15:曼彻斯特”、“16:布里斯托尔”];
var makeObjectFromArray=函数(arr){
if(Object.prototype.toString.call(arr)!='[Object Array]')返回arr;
var对象=[];
对于(变量i=0,长度=arr.length;i
var arr=[“14:伦敦”、“15:曼彻斯特”、“16:布里斯托尔”];
var makeObjectFromArray=函数(arr){
if(Object.prototype.toString.call(arr)!='[Object Array]')返回arr;
var对象=[];
对于(变量i=0,长度=arr.length;i
您可以映射它

var arr = ["14: London", "15: Manchester", "16: Bristol"];

var obj = arr.map(d => {
    var split = d.split(": ");
  return {
    [split[0]] : split[1]
  }
});
你可以绘制地图

var arr = ["14: London", "15: Manchester", "16: Bristol"];

var obj = arr.map(d => {
    var split = d.split(": ");
  return {
    [split[0]] : split[1]
  }
});

您也可以这样做,这样您就可以知道您的对象何时已经具有具有相同键的键/值对:

    var testArray = ["14: London", "14: London", "15: Manchester", "16: Bristol"];
    var testObj = {};
    var length = testArray.length;
    for ( var i = 0; i < length; i++ ) {
        var newTestArray = testArray[i].split(":");
        if ( testObj[newTestArray[0]] === undefined ) {
            testObj[newTestArray[0]] = newTestArray[1];
        } else {
            console.log("key: " + newTestArray[0] + " already exists!");
        }
    }
var testArray=[“14:伦敦”、“14:伦敦”、“15:曼彻斯特”、“16:布里斯托尔”];
var testObj={};
变量长度=testArray.length;
对于(变量i=0;i
您也可以这样做,这样您就可以知道您的对象何时已经具有具有相同密钥的密钥/值对:

    var testArray = ["14: London", "14: London", "15: Manchester", "16: Bristol"];
    var testObj = {};
    var length = testArray.length;
    for ( var i = 0; i < length; i++ ) {
        var newTestArray = testArray[i].split(":");
        if ( testObj[newTestArray[0]] === undefined ) {
            testObj[newTestArray[0]] = newTestArray[1];
        } else {
            console.log("key: " + newTestArray[0] + " already exists!");
        }
    }
var testArray=[“14:伦敦”、“14:伦敦”、“15:曼彻斯特”、“16:布里斯托尔”];
var testObj={};
变量长度=testArray.length;
对于(变量i=0;i
您的解释非常好,那么您已经尝试了什么?使用ES6语法:
arr.map(函数{var str=s.split(':');返回{[str[0]]:str[1].trim()};})您的解释非常好,那么您已经尝试了什么?使用ES6语法:
arr.map(函数{var str=s.split(':');返回{[str[0]]:str[1].trim()};})缺少一件事:键应该是数字。缺少一件事:键应该是数字。