试图操纵这个:变换数组/对象:如何在for循环中创建动态命名的对象?
input = [
[ ['a','b'], ['c','d'], ['e','f'] ],
[ ['g','h'], ['i','j'], ]
]
到
output = [
{a: 'b', c: 'd', e: 'f'},
{g: 'h', i: 'j'},
]
这是我到目前为止有:
function transform(array) {
result = [];
for (var i=0; i<array.length; i++){
for (var j=0; j<array[i].length; j++){
// How can I create an object here?
object.array[i][j][0] = array[i][j][1];
}
}
return result;
}
我想解决这个作为编码的挑战,所以我不要并不一定需要答案,但我不确定如何继续。由于内部有一对字符串的数组数量不统一(例如,输入数组中的第一组数组有3组,而第二组数组有2组,所以我认为我需要在每个循环内动态创建对象我可以在最后添加到结果数组中,我该如何做到这一点?
我不认为我应该使用任何类型的fancier /高阶函数,目标是建立我的熟悉度与基本面。
'var obj = {}; for(...){obj [key] = value; }'。请参阅[是否可以将动态命名的属性添加到JavaScript对象?](http://stackoverflow.com/q/1184123/218196) –
我建议你工作的功能只做一个转换,所以嵌套循环不要不妨碍理解。写一个将[['key1','value1'],['key2','value2']]'转换为'{key1:'value1',key2:'value2'}'的变量。 https://stackoverflow.com/questions/695050/how-do-i-add-a-property-to-a-javascript-object-using-a-variable-as-the-name可能会有所帮助。 – Ryan
@FelixKling如何解决这个问题,因为我需要能够创建这些对象x次数和x是多种多样的? –