有效的方法来从属性阵列和阵列匹配属性值的创建JavaScript对象 [英] efficient way to create JavaScript object from array of properties and array of matching property values
本文介绍了有效的方法来从属性阵列和阵列匹配属性值的创建JavaScript对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否有可能创建没有使用嵌套的for循环的的数据1
数组?
//我开始归一化数据
VAR栏= [姓名,年龄];
VAR DATA2 = [[约翰,20],[汤姆,25];
//我想要的结果看起来像规格化
VAR数据1 = [{名:约翰,时代:20},{名:汤姆,时代:25}];
//我的解决办法
变种DATA1 = [];
对于(VAR I = 0; I< data2.length;我++){
变种临时= {};
对于(VAR Y = 0; Y< fields.length; Y ++){
临时[域[Y] =数据2 [I] [Y]
}
data1.push(临时);
}
解决方案
我终于想到了一个不使用巢循环的有效途径! :)
VAR栏= [姓名,年龄];
VAR DATA2 = [[约翰,20],[汤姆,25];
变种体=;对于(VAR I = 0; I< fields.length;我++){
体= body.concat(这一点。+领域[I] += ARGS [+ I +];);
}VAR模型=新功能(ARGS体);变种DATA1 = [];
对于(VAR I = 0; I< data2.length;我++){
变种x =新模式(数据2 [I]);
data1.push(X);
}
Is it possible to create the the data1
array without using nested for loops?
// My starting Normalized data
var fields = ["name","age"];
var data2 = [["John",20],["Tom",25]];
// What I want the result to look like Denormalized
var data1 = [{"name":"John", "age":20},{"name":"Tom", "age":25}];
// My solution
var data1 = [];
for(var i = 0; i < data2.length; i++){
var temp = {};
for(var y = 0; y < fields.length; y++){
temp[fields[y]] = data2[i][y];
}
data1.push(temp);
}
解决方案
I finally thought of an efficient way that doesn't use nest for loops! :)
var fields = ["name","age"];
var data2 = [["John",20],["Tom",25]];
var body = "";
for(var i = 0; i < fields.length; i++){
body = body.concat("this."+fields[i] +"=args["+i+"]; ");
}
var model = new Function("args",body);
var data1 = [];
for(var i = 0; i < data2.length; i++){
var x = new model(data2[i]);
data1.push(x);
}
这篇关于有效的方法来从属性阵列和阵列匹配属性值的创建JavaScript对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文