Я пытаюсь сделать вспомогательные функции, чтобы использовать API Google Analytics, и у меня есть простая проблема с построением строк. Сценарий заключается в том, что я должен применить фильтр, и может быть 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
являются строками, поэтому я предположил, Я посылаю массив строк. Странно, что и , и null
в вызове функции buildString apply()
дают мне «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