Преобразование строки с запятыми в массив
Как преобразовать строку в массив 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
Ответ 7
Вы можете использовать split
Ссылка:
http://www.w3schools.com/jsref/jsref_split.asp
"0,1".split(',')
Ответ 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 с использованием следующих способов:
- Разделить() - разделитель отсутствует:
- Разделить() - Разделитель пустых строк:
- Разделить() - Разделитель в начале/конце:
- Разделитель регулярных выражений:
- Захватывающие скобки:
Разделить() с помощью предельного аргумента
проверить эту ссылку
==> 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'])
});