2016-11-10 18 views
0

私のシナリオでは、私は、テキストファイルをアップロードしたデータから、この配列をjavascriptの配列オブジェクトに変換するには?

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"]] 
+0

(HTTP [キーとプロパティの値を含む文字列を使用してアレイを作成する]の重複のように見えます//stackoverflow.com/q/40507402/4543207) – Redu

+0

@Redu類似[リンク](http://stackoverflow.com/questions/40489345/transform-all-array-keys-with-values-from-another -array)が、リンクから解決策はキーを提供することです。キーだけを使用してデータを記述すればどうなりますか? –

答えて

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] 
 
    }; 
 
}

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

関連する問題