繁体   English   中英

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

[英]How can I create a json object from 3 different arrays in 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" 
}
]

条目如何= {“ Col1”:“ v1.1”,“ Col2”:“ v1.2”,“ Col3”:“ v2.3”}因此,您可以作为v1.1的entry [Col1]来访问它

这样可以吗 您根本不需要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的东西,可以改用angular.forEach

这将把键与数组1混合,然后将键与数组2混合。我这样做是因为在您的问题中没有明确说明何时停止使用数组1并开始使用数组2(在使用所有值之后数组二,也许吗?

无论如何,出于您的目的,我认为关键是

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM