Javascript результаты разбиения массива - PullRequest
0 голосов
/ 16 января 2020

Я больше просто пытаюсь понять, почему происходит следующее (я понял, как получить то, что мне нужно).

Когда я использую функцию array.split, я смог получить 2 разных результата и wi sh, чтобы узнать почему. Вот пример, потому что я плохо объясню.

var x = 'R11, L12, U13, D14'.split('x ');
//Will create x = ['R11', 'L12', 'U13', 'D14']
//using var y = x.split('x ') will produce the same result

Но я также смог получить следующее:

var x = 'R11, L12, U13, D14';
x.split(', ');
//Will create x = ['R', '1', '1', 'L', '1', '2', 'U', '1', '3', 'D', '1, '4']

У кого-нибудь есть хорошее объяснение тому, что там происходит?

Ответы [ 2 ]

0 голосов
/ 16 января 2020

split - это не функция Array, а функция String. следовательно, в вашем первом фрагменте кода x.split('x ') не работает

во втором примере, я предполагаю, что вы хотите разбить строку на массив, а разделитель будет ",". Вы можете сделать это

const x = 'R11, L12, U13, D14';
const arr = x.split(", ");

результат равен

["R11", "L12", "U13", "D14"]

в тех случаях, когда пробел после запятой отсутствует или есть больше пробелов, вы можете сделать это.

const x = 'R11,L12,   U13, D14';
const arr = x.split(",").map(_ => _.trim());
0 голосов
/ 16 января 2020

Из документации MDN

Если разделитель - пустая строка (""), str преобразуется в массив каждого из его символов UTF-16 "*"

"XYZ".split("")
// yields: (3) ["X", "Y", "Z"]
...