3

文字列の 2 つの配列から JavaScript オブジェクトを動的に作成したいと考えています。1 つの配列がキーに使用され、別の配列が値に使用されます。たとえば、 * element.name="xyz";を作成する必要があります。*等

 var key=["name","id","surname"];
 var value=[["xyz","01","abc"],["def","02","ghi"]]; 
 var element=new Object();

上記の値から、次のようなオブジェクトを作成する必要があります。

    var element=new Object();
    element.name="xyz";
    element.id="01";
    element.surname="abc";

    var element =new Object();
    element.name="def";
    element.id="02";
    element.surname="ghi";
4

4 に答える 4

7

私はこのように行きます:

var value=[["xyz","01","abc"],["def","02","ghi"]]; // notice it's an array of array instead of an array of objects

var elements = [];

for (var i = 0; i< value.length; i++) {
    var elem = new Object();
    for (var j=0; j< key.length; j++) {
        elem[key[j]] = value[i][j];
    }
    elements.push(elem);
}
于 2013-09-03T11:43:43.777 に答える
0

他の回答に似ていますが、内側のループを避けています:

var keys = ["name","id","surname"];
var values = [["xyz","01","abc"],["def","02","ghi"]]; // an array of arrays, not objects

function populateObjects(keys, values) {
  var arr = [];
  for (var i = 0, l = values.length; i < l; i++) {
    var obj = {};
    obj[keys[0]] = values[i][0];
    obj[keys[1]] = values[i][1];
    obj[keys[2]] = values[i][2];
    arr.push(obj);
  }
  return arr;   
}

var arr = populateObjects(keys, values);
console.log(arr);
于 2013-09-03T11:52:15.390 に答える