如何在angularJS中从3个不同的数组创建一个json对象

时间:2015-10-29 19:56:39

标签: javascript json angularjs

我有3个不同的数组,一个包含表的列名,另一个包含数据。 如何将它们组合起来在AngularJS中形成一个单独的json对象?

var keyArray = ["Col1","Col2","Col3",...];
var ValArray1 = ["v1.1","v1.2","v1.3",...];
var ValArray2 = ["v2.1","v2.2","v2.3",...];

我想要一个像这样的json

entries[
{
name: "Col1",
value: "v1.1" 
},
{name: "Col2",
value: "v1.2" 
},
...,
{name: "Col3",
value: "v2.3" 
}
]

2 个答案:

答案 0 :(得分:0)

怎么样     entries = {“Col1”:“v1.1”,“Col2”:“v1.2”,“Col3”:“v2.3”} 所以你可以像访问它一样     条目[Col1],即v1.1

答案 1 :(得分:0)

这对你好吗?你根本不需要angularjs。

var addToArray = function(entries, keys, values){
    for(var i = 0; i < keys.length; i++){
        if(keys[i] && values[i]) {
            var obj = {};
            obj[keys[i]] =   values[i];            
            entries.push(obj);
        }
    }
}

var entries = [];
addToArray(entries, keyArray, ValArray1);
addToArray(entries, keyArray, ValArray2);

如果你想使用角度的东西,可以使用angular.forEach代替

这会将键与第一列混合,然后键与第二列混合..我是这样做的,因为在你的问题没有明确说明它应该停止使用数组一并开始使用数组二(在你使用全部之后)数组二中的值,也许?)

无论如何,为了你的目的,我认为关键点是

obj[keys[i]] =   values[i];   

这将允许您使用数组中的字符串创建属性名称