2013-03-15 97 views
2

给定一个具有偶数个元素的数组,我怎样才能将它变成一个对象数组,其属性'id'等于odd元素,'score'等于even元素。根据元素的奇数/偶数位置变换阵列

例如:

originalArray = [0,1,2,3,4,5] 
targetArray = [{ id: 0, score: 1 }, { id: 2, score: 3 }, { id:4, score: 5 }] 
+0

'originalArray'没有奇数元素... – 2013-03-15 16:31:59

回答

2

我不认为有什么比一个简单的循环更好:

targetArray = for i in [0 ... originalArray.length ] by 2 
    { id: originalArray[i], score: originalArray[i + 1] } 

您可以编写以不同的方式或在功能,包装它,但它”最后可能会是第二步。

演示:http://jsfiddle.net/ambiguous/gW3xj/

+0

回答有一点需要注意接受:循环应该结束originalArray.length - 1个 – 2013-03-15 19:49:03

+0

@RunningTurtle:查找的差异在CoffeeScript中的'..'和'...'之间,循环的写法是正确的。 – 2013-03-15 19:58:27

+0

我的错误,你绝对正确 – 2013-03-15 20:01:44

相关问题