如何创建对象键&;JavaScript中的值从数组字符串中动态生成
我想从两个字符串数组动态创建一个JavaScript对象。一个数组用于键,另一个数组用于值。e、 g.它应该创建*element.name=“xyz”*等 根据上述值,应创建如下对象:如何创建对象键&;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";
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);
}