我在嘗試使用幫助函數來利用Google Analytics API,並且我有一個構建字符串的簡單問題。場景是,我必須應用一個過濾器,並且可能有n個過濾器(標稱量,不超過128)。我想寫一個函數,它可以接收n個字符串並將它們與逗號分隔結合起來。如何將數組作爲參數傳遞給JavaScript中的函數?
我不知道參數的數量是否可以在javascript中變量,以及它是否可以將數組作爲參數在JavaScript中(我是JS的新手),但我沒有看到任何區別,因爲變量只是var
和在JS的任何地方都沒有數據類型(我來自C++/Java背景,發現它很混亂)。所以我試着將一個數組作爲參數傳遞給一個函數,我可以使用的東西可以是動態的,由數組中的元素決定。
當我開始尋找解決方案時,我碰到this page。在那之後,我最近遇到了this thread,它也提到了同樣的鏈接,他們提供的格式對我來說並不好。
爲了清楚起見,讓我提供我寫的函數定義。
/**
* Utility method to build a comma-ed string from an array of strings
* for the multiple-condition requests to the GA API
*/
function buildString(strArray)
{
var returnString='';
for(var x in strArray)
returnString+=x+',';
return returnString = returnString.substring(0, returnString.length - 1);
}
這是我怎麼稱呼它:
buildString.apply(this,[desc(visits),source])
其中desc(visits)
和source
都是字符串,所以我假設我送一個字符串數組。奇怪的是,this
和null
在apply()
調用buildString函數給我「0,1」作爲返回值。
請告訴我我哪裏出錯了。我是否以錯誤的方式傳遞數組?或者我的函數定義錯了?還是有其他更簡單的方法來實現我正在嘗試的?
對於變量參數檢查http://stackoverflow.com/questions/2141520/javascript-variable-number-of-arguments-to-function/2141530#2141530,你可以傳遞一個數組o r任何類型的對象作爲JS中的參數。 –
如果您想將數組轉換爲逗號分隔的字符串,請使用'array.join(',')'。 – Barmar
你使用你的函數的方式就是'buildString(someArray)'。 – Barmar