2017-08-17 47 views
0

嗨即時嘗試將我的數組與id轉換爲數組中的ID。 但我只得到一個回報,我不知道爲什麼?我說我不是使用return語句正確的100%,但我不能得到它的工作將數組轉換爲jquery ID

 function convortToJquery(e) { 

      for(var i = 0;i <= e.length;i++){ 
       var jqueryArray = []; 

       if(!e[i]){ 
        return jqueryArray; 
       }else{ 
        jqueryArray = "#"+e[i]; 
       } 
      } 
     } 

編輯:

 var jArrayText = convortToJquery(textWord); 
+1

什麼是你傳遞給這個功能呢? –

+0

...什麼是'textWord'呢? –

+0

Array [「Bacon」,「ipsum」,「dolor」,「amet」,「andouille」,「chicken」,「picanha」,「burgdoggen」,「short」,「ribs」,... – idh1337

回答

2

假設textWord是一個字符串數組,您的函數創建一個數組爲每個條目。你只想創建一個新的數組。還強烈建議不要使用超過陣列末尾的模式,並依靠!e[i]決定從函數返回。沒有必要這樣做,而且由於很奇怪而引入了維護問題。

最小修復你的代碼應該是這樣的(但請繼續閱讀):

function convortToJquery(e) { 
    var jqueryArray = [];     // Do this once at the beginning 
    for (var i = 0; i < e.length; i++) { // <, not <= 
     jqueryArray[i] = "#" + e[i];  // Put the entry in the array 
    } 
    return jqueryArray; 
} 

:這正是Array#map是:

function convortToJquery(array) { 
    return array.map(function(entry) { 
     return "#" + entry; 
    }); 
} 

map調用回調你爲數組中的每個條目給它一次,根據回調返回的內容構建一個新數組。

在ES2015 +環境(或transpiling),它是相當更簡潔:

function convortToJquery(array) { 
    return array.map(e => "#" + e); 
} 

或者,如果你可以使用const(或let)和函數表達式,而不是一個完整的function函數(有這東西不需要):

const convortToJquery = array => array.map(e => "#" + e); 
+0

很多!現在更清楚了! – idh1337

0

你的代碼是不正確的。在for循環中,總是會有一個值爲e[i]。所以你應該在循環完成後返回。此外,在初始化頂部的陣列,使得它不會啓動在每次循環清空

function convortToJquery(e) { 
 
    var jqueryArray = []; 
 
    for (var i = 0; i < e.length; i++) { 
 
     jqueryArray.push("#" + e[i]); 
 
    } 
 
    return jqueryArray; 
 
} 
 

-2

你沒有任何東西推到數組

jqueryArray.push(「#」 + E [I])

0

所有你必須做的是操縱數組的每個元素

function convortToJquery(e) { 
    return e.map(function(item){ 
    return '#'+item 
    }); 
} 

var textWord = [1,2,3,4]; 
 
function convortToJquery(e) { 
 
     return e.map(function(item){ 
 
     return '#'+item 
 
     }); 
 
    } 
 
    
 
    document.write(convortToJquery(textWord));