JavaScript: преобразовать строку в массив - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть массив:

itemSku = ["MY_SERVICE","SKU_A","SKU_B"];

Теперь я передаю это значение компоненту в Angular.Там я проверяю тип itemSku, и он возвращает строку, поэтому я не могу выполнять операции с массивами над этим.

console.log(typeof itemSku);
*string*

Как я могу преобразовать это обратно в массив?Я не могу использовать jquery, но могу использовать Javascript, Ramda или Lodash

Ответы [ 3 ]

0 голосов
/ 12 декабря 2018

попробуйте это:

let result = itemSku.split(",");
0 голосов
/ 12 декабря 2018

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

Обратите внимание, что символ по умолчанию, используемый для присоединения к массиву, - это запятая ,:

var a = ['foo', 'bar'];

console.log(a.toString());
console.log(a + '');
console.log('' + a);
console.log(a.join());
console.log(String(a));

Чтобы оправиться от этого, вам не нужен Рамда, вы можете сделать это простым JavaScript:

var b = 'foo,bar';
var a = b.split(',');

console.log(a);

Если бы вы действительно хотели Рамду, R.split сделал бы аналогичную работу:

var splitByComma = R.split(',');
var a = splitByComma('foo,bar');
console.log(a);
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.min.js"></script>

Ссылки

  1. String.prototype.split
  2. R.split
0 голосов
/ 12 декабря 2018

Вы можете использовать JSON.parse (itemSKu), чтобы преобразовать его обратно в массив

...