如何在javascript中将数组转换为数组对象?

时间:2016-11-10 06:48:20

标签: javascript arrays split arrayobject

我的场景是我将上传包含此类数据的文本文件

a1,b1,,c1,d1,
a2,b2,,c2,d2, 

从数据中,我能够读取并用(“\ n”)拆分它,结果是

array=[array[0]:[a1,b1,,c1,d1]
       array[1]:[a2,b2,,c2,d2]]

如何将上面的数组填充到我的数组对象中?

示例输出:

newarray=[[name="a1",age:"b2",address="",contact="c1",gender="d1"],
           [name="a2",age:"b2",address="",contact="c2",gender="d2"]]

2 个答案:

答案 0 :(得分:2)

由于数组中每个属性的位置似乎是固定的,我只想创建一个具有固定赋值的函数。像这样:

var str = "a1,b1,,c1,d1,\na2,b2,,c2,d2,";
var objects = parseString(str);
console.log(objects);

function parseString(strIn){
  var objectList = [];
  var splitResult = strIn.split("\n");
  for(var i=0;i<splitResult.length;i++){
    var valueArray = splitResult[0].split(",");
    objectList.push(mapToObject(valueArray));
  }
  return objectList;
}

function mapToObject(array){
  return {
    name: array[0],
    age:array[1],
    address: array[2],
    contact: array[3],
    gender:array[4]
  };
}

答案 1 :(得分:0)

function arrToObj(arr){
 var newArr = [];
 arr.forEach(function(value,index){
     obj = {};
     obj.name = value[0];
     obj.age = value[1];
     obj.contact = value[2];
     newArr.push(obj);

});
return newArr;
}