2015-11-02 2 views
1

Почему вы предполагаете, что в Chrome существует другое поведение? Ошибка V8? Кажется, что он не соответствует ES specification.Объединение массива, содержащего несколько пробелов, исключает дублирование пробелов в Chrome

В Safari:

['A', ' ', ' ', ' ', ' ', ' ', 'B'].join('') 
> "A  B" 

В Firefox:

['A', ' ', ' ', ' ', ' ', ' ', 'B'].join('') 
> "A  B" 

В Chrome (версия 46.0.2490.80 (64-битный)):

['A', ' ', ' ', ' ', ' ', ' ', 'B'].join('') 
> "A B" 
+1

Может быть ошибкой ... –

+1

Если это не соответствует спецификации, это ошибка, и вы должны написать отчет об ошибке. –

+0

Да сообщит; надеялся, что это был, возможно, надзор с моей стороны. –

ответ

1

Это, как Chrome форматы вывода в консоли. Я не уверен, что конкретно это и я не могу найти это документально, но это легко доказать, что истинное значение строки сохраняется:

> ['A', ' ', ' ', ' ', ' ', ' ', 'B'].join('').split('') 
["A", " ", " ", " ", " ", " ", "B"] 

Вы можете использовать console.log распечатать бесформатного строковое значение ,

+0

Tricky. Хотел бы, чтобы у меня был способ отключить это. –

0

Я только что испытал на Chrome 46, 47, 48, и он работает.

['A', ' ', ' ', ' ', ' ', ' ', 'B'].join('') 
"A  B" 

Быстрая проверка this demo показывает, что он тоже работает.

Смежные вопросы