2015-09-22 54 views
0

我有以下2個陣列的位置:試圖創建給出對象的數組2個陣列+地圖

> chNameArr 
[ 'chanel1', 
    'chanel2', 
    'chanel3', 
    'chanel4', 
    'chanel5', 
    'chanel6', 
    'chanel7' ] 

這裏:

> a 
[ 'channelName' 
    'status', 
    'connections', 
    'socketIds', 
    'lastRun', 
    'numberOfRuns', 
    'timeout' ] 

什麼,我想要實現以下目標每個通道在陣列中channelNamea得到的值從​​但其餘的'a'得到一個空字符串

file=[{"channelName":"chanel1","status":"", "connections":"", "socketIds":"", "lastRun":"", "numberOfRuns":"", "timeout":""}, 
. 
. 
. 
     {"channelName":"chanel7","status":"", "connections":"", "socketIds":"", "lastRun":"", "numberOfRuns":"", "timeout":""}] 

這是我嘗試

> chNameArr.map(function(d){return {channelName:d}}) 
[ { channelName: 'chanel1' }, 
    { channelName: 'chanel2' }, 
    { channelName: 'chanel3' }, 
    { channelName: 'chanel4' }, 
    { channelName: 'chanel5' }, 
    { channelName: 'chanel6' }, 
    { channelName: 'chanel7' } ] 
+0

那麼問題是什麼?你知道如何迭代數組嗎?以及如何將屬性添加到對象?這是你需要知道的唯一東西...... –

回答

2
chNameArr.map(function(d) { 
    result = {}; 
    result[a[0]] = d; 
    for (var i=1; i<a.length; i++) { 
    result[a[i]] = ""; 
    } 
    return result; 
}) 

沒有一個班輪解決一般這個問題,但如果你實際上並不需要使用數組a,你可以手動構建{channelName:d, status: "", ...}在原始地圖。

+0

tks你的函數是完美的,因爲我可以添加到'a'數組,它仍然可以工作,因爲手動構造它不會像動態一樣動態 – HattrickNZ