2017-01-09 33 views
1

反正有建立的类型的集合:修改在AngularJS集合基于随机输入数组

var demoObject = 
{ 
    param1: value1, 
    param2: value2, 
    param3: value3, 
    ... 
} 

其中两个PARAM和值是从输入阵列,并且可以延伸到“n”个数的值,即演示对象应该是动态的。

问题:我正在比较两个数组,希望根据某些标准填充上面的集合。 paramX和valueX都可以从任何一个数组中轻松获得。

我试过了:拼接并生成我自己的数组,使用angular.forEach构建自定义对象......但没有一个输出给出了上述“var demoObject”格式的结果。 我要喂这个对象的API需要一个固定的JSON格式,并且我打算去做angular.ToJson(demoObject) 欣赏任何输入和想法。

+0

什么输入数组是什么样子? –

+0

你有什么比较标准? –

+0

输入数组类似于array [0] = Attribute1:Value1,Attribute2:Value2,... array [1] = Attribute1:Value1,Attribute2:Value2 ...比较条件是array1 [i] .Value != array2 [i] .Value或类似的行 – Adi

回答

0

我想你想要的是这样的:

var demoObject = {}; 
var someArray = [ 
    {useIt: true, paramName: 'jane', value: 'hi there'}, 
    {useIt: false, paramName: 'tom', value: 'bonjour'}, 
    {useIt: true, paramName: 'mary', value: 'hola'} 
]; 

var paramNum = 1; 
for (var i=0; i<someArray.length; i++) { 
    if (someArray[i].useIt) { 
     demoObject[someArray[i].paramNname] = someArray[i].value; 
    } 
} 

console.log(demoObject); 
// Object {jane: "hi there", mary: "hola"}  

console.log(demoObject.jane); 
// hi there 
+0

完美的工作!我想我太过于挂在angular.forEach上,我没有使用简单的for循环。谢谢! – Adi

0

我并不真正了解您要归档的内容,因为我可能无法正确理解您的问题。

但是,当涉及到演示数据我使用faker.js(https://github.com/marak/Faker.js/)。这是一个Javascript节点模块,它允许您生成各种演示数据。这可能非常有用。 检查出来,你会喜欢它... HTH

+0

我只是想在我的问题中构建格式的动态对象,该对象填充了某个数组中的所有数据。感谢您的faker.js,一定会检查出我的测试。 – Adi