2016-10-06 37 views
0

快速問題 我有一個散列表,每個鍵都有一個對象,它分爲兩部分:主題和查詢。 我試圖獲取查詢和主題的值,但我不能。我所得到的都是未定義的。 我如何獲得價值?在javascript中獲取散列表中的信息

function IntersectGroups(keyToGeneDetailMappingGroupArray) { 

    allKeys = CreateSetWithAllKeys(keyToGeneDetailMappingGroupArray); 

    var numElements = Math.pow(2, keyToGeneDetailMappingGroupArray.length); 

    var results1= new Array(numElements); 
    for (var j = 0; j < results.length; j++) 
    { 

     results1[j] = 0; 
    } 


    // Run for every key (for all groups) 
    for (var currentKey in allKeys.items) 
    { 

     var linescontent=""; 
     var index = 0; 

     // Run for every group 
     for (var k = 0; k < keyToGeneDetailMappingGroupArray.length; k++) 
     { 
      var isGroupContained = keyToGeneDetailMappingGroupArray[k].hasItem(currentKey); 

      if (isGroupContained) 
      { 
       //Not relevent: Watch the data structures: sumElements += keyToGeneDetailMappingGroupArray[k].getItem(currentKey).length; 
       sumElements += 1; 
       linescontent += currentKey.Query;//I get undefined 
       index += Math.pow(2, k); 
      } 
     } 

     results1[index] += linescontent; 
    } 
    return results1; 
} 

數據例如

Query Subject 

Crella_elegansContig_3 tr|Q8BUQ6|Q8BUQ6_MOUSE 
Crella_elegansContig_10 sp|Q8CHY3-2|DYM_MOUSE 
Crella_elegansContig_14 sp|Q9R1L5|MAST1_MOUSE 
Crella_elegansContig_16 sp|Q8BGZ4-2|CDC23_MOUSE 
Crella_elegansContig_26 sp|Q9CPS6|HINT3_MOUSE 
Crella_elegansContig_29 sp|Q8BP67|RL24_MOUSE 
Crella_elegansContig_31 sp|A3FIN4-2|AT8B5_MOUSE 
Crella_elegansContig_32 tr|E9PZX7|E9PZX7_MOUSE 
Crella_elegansContig_33 sp|Q6P7W0|SENP6_MOUSE 

enter image description here

+0

請添加數據和函數頭以及函數的調用。 –

+1

請看看這裏:[mcve] –

回答

1

你似乎是將你的信息,以results1,但你正在返回results這將是不確定的。

+0

對不起,我的壞。編輯我的問題。 那是不是問題 – badbuda

+0

它仍然返回undefined?如果是這樣,你可以發佈一些數據進行比較 –

0
for (var currentKey in allKeys.items) { 
    /* ... */ 
       linescontent += currentKey.Query;//I get undefined 

for .. in將設置allKeys.items對象(和原型)的currentKey的鍵。即使它是一個數組,它將被設置爲項目的索引,而不是單個項目,並且始終是一個字符串。

您的代碼中沒有提供allKeys.items實際外觀的信息,但是如果您期望遍歷元素,則可以使用for (var currentKey of allKeys.items)(需要es2015環境)或for (var i of allKeys.items) { var currentKey = allKeys.items[i]; /* ... */ }