Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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_Dynamic_Javascript Objects - Fatal编程技术网

如何创建对象键&;JavaScript中的值从数组字符串中动态生成

如何创建对象键&;JavaScript中的值从数组字符串中动态生成,javascript,dynamic,javascript-objects,Javascript,Dynamic,Javascript Objects,我想从两个字符串数组动态创建一个JavaScript对象。一个数组用于键,另一个数组用于值。e、 g.它应该创建*element.name=“xyz”*等 根据上述值,应创建如下对象: var element=new Object(); element.name="xyz"; element.id="01"; element.surname="abc"; var element =new Object(); element.name="def";

我想从两个字符串数组动态创建一个JavaScript对象。一个数组用于键,另一个数组用于值。e、 g.它应该创建*element.name=“xyz”*等

根据上述值,应创建如下对象:

    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";
我想这样说:

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);
}
var值=[[“xyz”、“01”、“abc”]、[“def”、“02”、“ghi”]];//请注意,这是一个数组的数组,而不是一个对象数组
var元素=[];
对于(变量i=0;i
与其他答案类似,但避免了内部循环:

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);
var key=[“名称”、“id”、“姓氏”];
变量值=[“xyz”、“01”、“abc”]、[“def”、“02”、“ghi”]];//数组的数组,而不是对象
函数populateObject(键、值){
var-arr=[];
对于(变量i=0,l=values.length;i
您可以使用和函数来获得结果。Map将展平数组,reduce将为每个数组创建对象

const key=['name'、'id'、'姓氏']
常量值=[
['xyz','01','abc'],
['def','02','ghi']
]
const result=values.map(行=>
行减少((acc、cur、i)=>
(acc[键[i]]=cur,acc),{})
console.log(结果)
使用此创建动态对象


需要进一步说明您的需求元素是一个对象还是一组对象?因为您的值对象包含一个由2个“对象”组成的数组,所以看起来您正试图创建两个对象,或者在一个数组中创建两个对象。@Simdrou在它的objects@Andy我想稍后将此对象传递给array但是,如果有新属性添加到keys/values对象,您需要修改populateObjects函数fair point。问题并没有提到那个tho。它表示对象将是静态的。出于理智:
jc您能帮我解决这个问题吗
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);
    let featureConfigsData: any = {};
    // let featureConfigsData = new Object();

    if (feature_configs) {
      feature_configs.map((item: any, index: number) => {
        featureConfigsData["" + item.name + ""] = item.value;
      });
      console.log("K_____  ", featureConfigsData);
    }