2015-10-09 46 views
2

新增至JS。JavaScript .map()語法錯誤

我正在使用谷歌腳本來創建一個函數,將輸入一個字符串將輸出中的整數(如果有的話)。爲了優化谷歌腳本,我已閱讀了關於允許範圍作爲輸入的建議。

使用.map時出現錯誤,但我無法弄清楚它是什麼。任何幫助。我一直在尋找更多使用map的例子,但都沒有幫助。

有什麼想法?

感謝大家

if (input.map) { 
 
    input.map(
 
    if (isInt(split[i])) { 
 
     result = split[i] 
 
    }); 
 
} else { 
 
    for (i = 0; i < split.length; i++) { 
 
    if (isInt(split[i])) { 
 
     result = split[i]; 
 
    } 
 
    } 
 
}

+1

的'map'是'function'你有什麼是'expression' [MDN第一個參數](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)。 – trebor

+1

如果代碼實際上並沒有修改你的輸入數組,那麼'forEach'比'map'更適合。 – Xufox

+0

你不能使用**語句**作爲函數參數。你見過看起來像'foo(if(true){...})'的代碼嗎?這沒有意義。 MDN通常有例子。 –

回答

3

.map你應該通過功能參數,

input.map(function() { 
    // your code 
}); 
+1

謝謝亞歷山大! –

0

將輸入一個字符串輸出它的整數(如果有的話)

嘗試使用isNaN,​​,Array.prototype.filter()typeof返回Number

var arr = ["1", "a", "0"]; 
 
var res = arr.map(function(n) { 
 
    return !isNaN(Number(n)) && Number(n) 
 
}).filter(function(n) { 
 
    return typeof n === "number" 
 
}); 
 
console.log(res)

+0

@Xufox查看更新後的帖子 – guest271314