Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   .join('') не работает (https://javascript.ru/forum/misc/62974-join-%27%27-ne-rabotaet.html)

Blondinka 10.05.2016 18:21

.join('') не работает
 
Добрый день.

Подскажите, пожалуйста, аналог .join(''), чтоб удалял все запятые с массива.
http://jsfiddle.net/wy8X9/230/
При переносе в index.html на компьютере, также не работает.
С одинарными или с двойными кавычками не работает.
.replace(/,/, "") || .replace(",", ""); - не работает

Спасибо.

laimas 10.05.2016 18:31

join не удаляет, а объединяет, и все работает:

var colors = ["9", "a", "b", "c", "d", "e", "f"];
alert(colors.join(''))


.replace(/,/, "") || .replace(",", "") - к массиву, это глупость конечно, то что массив записан как ["9", "a", ...] совсем не означает, что в нем есть запятые, это всего лишь синтаксис описания массива. Тем более .push() вообще не имеет ввиду расставлять запятые в массиве. Массив, это данные в отведенной области, которые находятся под смещениями, определенными индексами массива.

Для оперирования цветом лучше подходят цветовые модели HSB/HLS, проще задать цвет, получить диапазон цвета. А конвертировать полученное можно без проблем и в hex-представление, да и не обязательно оно, цвет в html можно задавать и как rgb(значения цветовых компонент).

Blondinka 10.05.2016 18:53

laimas,
Цитата:

Сообщение от laimas (Сообщение 416157)
join не удаляет, а объединяет, и все работает:

var colors = ["9", "a", "b", "c", "d", "e", "f"];
alert(colors.join(''))

Но, почему тогда, в моём коде это не работает? В то время, как отдельно, мы видим 9abcdef, в коде - или с запятыми, или не работает, вообще?

Blondinka 10.05.2016 18:56

Это программа для генерации пастельных тонов (нежных, не ярких, чтоб можно было сделать фоном страницы).

Blondinka 10.05.2016 19:05

Получилось!
http://jsfiddle.net/wy8X9/231/
Сделала переменную строкой, раз массив не хочет работать.

laimas 10.05.2016 19:49

Цитата:

Сообщение от Blondinka
Но, почему тогда, в моём коде это не работает?

Потому, что вы в массив colorSet добавляете не каждую компоненту как нужно:

generator.colorSet.push(generator.colors[i], generator.colors[j], generator.colors[k]);


а массив компонентов:

generator.colorSet.push([generator.colors[i],generator.colors[j], generator.colors[k]+"\n"]);


да еще завершением перевода строки (! :) )

Если выбросить мусор (+"\n"), то результатом будет не

[элемент, элемент, элемент]

а

[[элемент, элемент, элемент]]

чего тут соединять будет join?

Blondinka 10.05.2016 20:52

Спасибо, laimas


Часовой пояс GMT +3, время: 12:38.