2016-01-15 127 views
0

我試圖讓這工作作爲我可以在任何字符串當作一個函數調用一個函數來獲取使用.maptrue返回的值,然後以數組形式false報表 -我不能得到這個作爲一個JavaScript函數(我得到我想要的返回值,當我console.log這個,但我不能稱它爲一個函數)

我瞭解.map作品,並能得到它返回我希望在一個值new array當我console.log(lastArray)但我不能讓它的功能,我可以調用字符串lastArray(dirtyString)finalArray("the cat pop racecar blue")[false, false, true, true, false]。我不能使用任何循環,必須使用.map(但我已經解決了這些問題,因爲只有console.log-ing finalArray爲我返回一個正確的值的新數組...我可以看不到我做錯了&當我試圖重新工作,我得到Undefined。我想保留我的方法,我只是不知道爲什麼它不能作爲我可以調用的函數工作(&我已經完成了數小時的在線調查並已在此工作幾天)另外,對不起,我的代碼是如此混亂&有時冗餘&嚴重評論(我剛剛嘗試了很多方式試圖讓它工作,我是一種新的CS & JS)此外,當試圖調用字符串上的函數時,它也會返回錯誤。以下是我的代碼:

/* split string into array of substrings, clean out extra spaces, return new array of substrings */ 

    var dirtyString = ("stash and pop on this level"); 


    var cleanArray = function(dirtyString){ 
     var splitString = dirtyString.split(" "); 
     var cleanArray = splitString.filter(Boolean); 
     return cleanArray; 
    }; 

    var newArray = cleanArray(dirtyString); 

    /* take each element of the array, if it's a palindrome, add a true element to new array using map; if it's not, add a false element to the new array... using map */ 

    ///helper function that returns correct value when I console.log it/// 
    var lastArray = newArray.map(function(x) { 
     if (x === x.split("").reverse().join("")){ 
     return true;} 
     else { 
      return false;} 
     }); 

    */attempting to put the logic in lastArray into a function I can call /* 

    var palindromicMap = function (dirtyString) { 
     var cleanedArray = cleanArray(dirtyString); 
     var output = cleanedArray.map(function(x){ 
     if (x === x.split("").reverse().join("")){ 
      return true;} 
     else if (x !== x.split("").reverse().join("")){ 
      return false;} 
     }); 
     return output; 
    }; 
    console.log(lastArray); 
*/returns correct outcome /* 
    palidromicMap(cleanArray); 
*/returns error /* 
palindromicMap("cat pop racecar blue"); 
*/returns error/* 
+0

這真的是你用於'if/else'語句的支撐風格嗎? – jfriend00

+1

你也可以做'return x === x.split(「」)。reverse()。join(「」)' – Rajesh

+0

***我的意思是lastArray(){not finalArray()} - 對不起,數組太多變量... – KindeR66

回答

1

結帳this jsfiddle here。該函數將一個字符串作爲參數,但您給它一個函數,導致誤導性的錯誤消息。

基本上改變了調用到

console.log(palindromicMap(dirtyString)); 

似乎解決問題。

+0

omg,非常感謝你 - 我只是說錯了!我對JavaScript非常陌生,看到msg錯誤只是讓我發瘋......謝謝! omg,謝謝! – KindeR66

相關問題