Преобразование строки с запятыми в массив

Как преобразовать строку в массив JavaScript?

Посмотрите на код:

var string = "0,1";
var array = [string];
alert(array[0]);

В этом случае alert появится всплывающее окно 0,1. Когда это будет массив, он будет всплывать 0, и когда вызывается alert(array[1]);, он должен всплывать 1.

Есть ли возможность преобразовать такую ​​строку в массив JavaScript?

Ответ 1

Для простых членов массива, подобных этому, вы можете использовать JSON.parse.

var array = JSON.parse("[" + string + "]");

Это дает вам массив чисел.

[0, 1]

Если вы используете .split(), вы получите массив строк.

["0", "1"]

Просто помните, что JSON.parse ограничит поддерживаемые типы данных. Если вам нужны значения типа undefined или функции, вам нужно будет использовать eval() или парсер JavaScript.


Если вы хотите использовать .split(), но вам также нужен массив чисел, вы можете использовать Array.prototype.map, хотя вам нужно будет подкрепить его для IE8 и опустить или просто написать традиционный цикл.

var array = string.split(",").map(Number);

Ответ 2

Split на символ ,;

var string = "0,1";
var array = string.split(",");
alert(array[0]);

Ответ 3

Это легко достигается в ES6;

Вы можете конвертировать строки в массивы с помощью Array.from('string');

Array.from("01")

будет console.log

['0', '1']

Что именно вы ищете.

Ответ 4

Если строка уже находится в формате списка, вы можете использовать JSON.parse:

var a = "['a', 'b', 'c']";
a = a.replace(/'/g, '"');
a = JSON.parse(a);

Ответ 5

Конвертировать все типы строк

var array = (new Function("return [" + str+ "];")());



var string = "0,1";

var objectstring = '{Name:"Tshirt", CatGroupName:"Clothes", Gender:"male-female"}, {Name:"Dress", CatGroupName:"Clothes", Gender:"female"}, {Name:"Belt", CatGroupName:"Leather", Gender:"child"}';

var stringArray = (new Function("return [" + string+ "];")());

var objectStringArray = (new Function("return [" + objectstring+ "];")());

JSFiddle https://jsfiddle.net/7ne9L4Lj/1/

Результат в консоли

enter image description here

Некоторые практики не поддерживают объектные строки

- JSON.parse("[" + string + "]"); // throw error

 - string.split(",") 
// unexpected result 
   ["{Name:"Tshirt"", " CatGroupName:"Clothes"", " Gender:"male-female"}", "      {Name:"Dress"", " CatGroupName:"Clothes"", " Gender:"female"}", " {Name:"Belt"",    " CatGroupName:"Leather"", " Gender:"child"}"]

Ответ 6

Для простых членов массива, подобных этому, вы можете использовать JSON.parse.

var listValues = "[{\"ComplianceTaskID\":75305,\"RequirementTypeID\":4,\"MissedRequirement\":\"Initial Photo Upload NRP\",\"TimeOverdueInMinutes\":null}]";

var array = JSON.parse("[" + listValues + "]");

Это дает вам массив чисел.

теперь значение переменной равно array.length = 1

Выход значения

array[0].ComplianceTaskID
array[0].RequirementTypeID
array[0].MissedRequirement
array[0].TimeOverdueInMinutes

Ответ 8

Другая опция, использующая ES6, использует синтаксис Spread.

var convertedArray = [..."01234"];

var stringToConvert = "012";
var convertedArray  = [...stringToConvert];
console.log(convertedArray);

Ответ 9

используйте встроенную функцию отображения с анонимной функцией, например:

string.split(',').map(function(n) {return Number(n);});

[edit] здесь, как вы его используете

var string = "0,1";
var array = string.split(',').map(function(n) {
    return Number(n);
});
alert( array[0] );

Ответ 10

Ниже приведены примеры "Попробуйте сами".

Определение и использование Метод split() используется для разделения строки на массив подстрок и возвращает новый массив.

Совет. Если в качестве разделителя используется пустая строка (""), строка разделяется между каждым символом.

Примечание. Метод split() не изменяет исходную строку.

var res = str.split(",");

Ответ 11

Как преобразовать разделенную запятыми строку в массив в JavaScript?

var string = 'hello, world, test, test2, rummy, words';
var arr = string.split(', '); // split string on comma space
console.log( arr );

//Output
["hello", "world", "test", "test2", "rummy", "words"]

Дополнительные примеры преобразования строки в массив в javascript с использованием следующих способов:

  1. Разделить() - разделитель отсутствует:
  2. Разделить() - Разделитель пустых строк:
  3. Разделить() - Разделитель в начале/конце:
  4. Разделитель регулярных выражений:
  5. Захватывающие скобки:
  6. Разделить() с помощью предельного аргумента

    проверить эту ссылку ==> https://www.tutsmake.com/javascript-convert-string-to-array-javascript/

Ответ 12

Вы также можете использовать этот массив-make компонент с открытым исходным кодом, который переносит любое значение с помощью массива.

Примеры:

 makeArray(1) // => [1]
 makeArray([1]) // => [1]
 makeArray(null) // => []

Один из трех тестов обертывает строку массивом:

makeArray() should wrap an empty string with an array

Ответ 13

Я удаляю символы '[', ']' и делаю их с помощью ','

let array = stringObject.replace('[','').replace(']','').split(",").map(String);

Ответ 14

var i = "[{a:1,b:2}]",
    j = i.replace(/([a-zA-Z0-9]+?):/g, '"$1":').replace(/'/g,'"'),
    k = JSON.parse(j);

console.log(k)

Ответ 15

Split ( "," ) может преобразовывать строки с запятыми в массив String, вот мой фрагмент кода.

    var input ='Hybrid App, Phone-Gap, Apache Cordova, HTML5, JavaScript, BootStrap, JQuery, CSS3, Android Wear API'
    var output = input.split(",");
    console.log(output);

[ "Гибридное приложение", "Телефон-Gap", "Apache Cordova", "HTML5", " JavaScript "," BootStrap "," JQuery "," CSS3 "," Android Wear API "]

Ответ 16

Пример использования Array.filter:

var str = 'a,b,hi,ma,n,yu';

var strArr = Array.prototype.filter.call(str, eachChar => eachChar !== ',');

Ответ 17

Почему бы вам не заменить , запятую и split('') такую ​​строку, которая возникнет в ['0', '1'], более того, вы можете обернуть результат в parseInt(), чтобы преобразовать элемент в целочисленный тип.

it('convert string to array', function () {
  expect('0,1'.replace(',', '').split('')).toEqual(['0','1'])
});