разделить пустую строку дает элемент - PullRequest
0 голосов
/ 02 января 2019

почему split в пустой строке дает элемент?

т.е. как получить 0 в следующем случае:

let tags = "";
let arr = tags.split(',');
console.log(arr.length);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Ответы [ 3 ]

0 голосов
/ 02 января 2019
   let tags = "";
   let arr = tags.split(',').filter(x => x);
   console.log(arr.length);
   else 
   {

   var result=console.log(arr.length);
   } 
0 голосов
/ 02 января 2019

Вы можете просто удалить пустые string элементы формы arr, используя filter

let tags = "";
let arr = tags.split(',').filter(x => x);
console.log(arr.length);
0 голосов
/ 02 января 2019

Это просто характер функции split согласно спецификации ECMAScript. Вот соответствующая выдержка из spec :

Если объект this является (или преобразуется в) пустой строкой, результат зависит от того, может ли разделитель соответствовать пустой строке. Если это возможно, массив результатов не содержит элементов. В противном случае массив результатов содержит один элемент, который является пустой строкой.

Простой обходной путь для поведения, которое вы ищете, будет выглядеть примерно так:

let arr = !tags ? [] : tags.split(',');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...