2016-02-12 83 views
-1

我知道它是一个愚蠢的问题,但我有点卡住了。变换阵列阵列

我有一个这样的数组:

var arr = [[2, 5], [5,1], [6,7], [3,1]]; 

我需要这样的转变:

arr = [21, 41, 55, 25] //arr[0][0]*8 + arr[0][1] 

有人能解释如何实现这一目标? for循环,.map()?

http://jsbin.com/wegohutemo/edit?js

+0

你的输出应该看起来怎么样? – Rayon

+0

[21,41,55,25] – Hiero

+0

看看lodash或下划线 –

回答

2

使用map函数来变换,见demo

arr = arr.map(function(value){ 

    return value[0]*8 + value[1]; //picks up one item at a time and apply your algorithm. 

}) 
+1

它将是非常好的,如果你可以添加一些'解释:) :) – Joomler

+0

它dosent似乎为我工作http://jsbin.com/fulipuquca/edit?js,console – Hiero

+0

第一个元素应该是21 – Hiero

2

有点不同,但我对待数组作为八进制数字。

var arr = [[2, 5], [5, 1], [6, 7], [3, 1]], 
 
    result = arr.map(function (a) { 
 
     return parseInt(a.join(''), 8); 
 
    }); 
 

 
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');