[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Передача параметра в строке и создание массива
konstantin.smorodin
Добрый день. У меня есть ссылка, в которой я вызываю функцию и передаю строковое значение:

$stroka = "text-1";
<
a href="#" onClick="do{<?=$stroka ?>">Ссылка</a>


При вызове функции я хочу создать массив:

function do(val) {
a = val.split("-");
}


Выдает ошибку: функция val.split не существует. Что я делаю не так?
Astin
ну так почитайте про создание массивов на js, в чем проблема подучить то что надо
konstantin.smorodin
Astin

Ну я почитал, что можно сделать через функцию split. В функцию do строка передается, а почему возникает ошибка, понять не могу.
Astin
Цитата (konstantin.smorodin @ 10.08.2021 - 23:04)
Astin

Ну я почитал, что можно сделать через функцию split. В функцию do строка передается, а почему возникает ошибка, понять не могу.

а что у тебя вообще прилетает в val ты знаешь???
Если туда ниче не прилетит то что будет разбирать split????

Скорее всего надо что то типа такого

function do(val) {
var do_val = '';

if(val != '') {
do_val = val.split("-");
}

далее что то делаешь с переменной
}
sergeiss
Цитата (konstantin.smorodin @ 10.08.2021 - 20:28)
При вызове функции я хочу создать массив:

function do(val) {
  a = val.split("-");
}

...Что я делаю не так?

Мне кажется, что ты ВСЁ делаешь "не так" :)
1. Имя функции не должно совпадать с зарезервированным словом языка.
2. Нет дефолтного значения у параметра.
3. А что дальше делается с полученной переменной? Надеюсь, что в функции еще что-то выполняется, а не только происходит получение массива :)
4. Объявлена ГЛОБАЛЬНАЯ переменная a. Это плохо. Надо объявлять переменную внутри блока.
5. Да и однобуквенное обозначение для переменной.... Так себе идея. Только в редких случаях это может быть оправдано. Например, какой-то небольшой цикл.

Если надо просто разделить на части и получить массив, то...
function do_split(val = '') {
let arr = val.split('-');

// далее используем переменную для каких-то целей.
// ...


}


Но если вдруг, внезапно, надо просто получить массив, то тогда так проще, в одну строку (используя стрелочную функцию):
const do_split = (val = '') => val.split('-');


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.