У меня ниже строки -
var a = "1,2,3,4";
когда я делаю -
var b = a.split(',');
Я получаю b
как["1", "2", "3", "4"]
я могу сделать что-то, чтобы получить b
как [1, 2, 3, 4]
?
javascript
arrays
Ashwin
источник
источник
Вы можете использовать
Array.map
для преобразования каждого элемента в число.Проверьте документы
Или более элегантно, как указано пользователем: thg435
Где
Number()
будет отдыхать: проверьте здесьПримечание. Для более старых браузеров, которые не поддерживают
map
, вы можете добавить реализацию самостоятельно, например:источник
map(Number)
."1.1,2,3".split(",").map(Number)
в[1.1, 2, 3]
то время как"1.1,2,3".split(",").map(item => parseInt(item, 10))
это[1, 2, 3]
Сопоставьте это с целыми числами:
map
просматривает каждый элемент массива, передает его в предоставленную функцию и возвращает массив с возвращаемыми значениями этой функции.map
недоступно в старых браузерах, но большинство библиотек, таких как jQuery или подчеркивание, включают кросс-браузерную версию.Или, если вы предпочитаете петли:
источник
+string
постараюсь изменить строку на число. Затем используйтеArray.map
функцию, чтобы изменить каждый элемент.источник
Array.from () для подробностей перейдите к MDN
b
это массив чиселисточник
Более короткое решение: сопоставить и передать аргументы
Number
:источник
источник
Как вариант вы можете использовать комбинацию
_.map
и_.ary
методы из библиотеки lodash . Вся трансформация будет более компактной. Вот пример из официальной документации :источник
Нет необходимости использовать лямбды и / или давать
radix
параметрparseInt
, просто используйтеparseFloat
илиNumber
вместо.Причины:
Это работает:
Это короче.
Это немного быстрее и использует преимущества кэша, когда
parseInt
-approach - не :Примечание: в Firefox
parseInt
работает примерно в 4 раза быстрее, но все же медленнее, чем другие. В общей сложности:+e
<Number
<parseFloat
<parseInt
источник
Подчеркивание JS путь -
источник
Версия Мэтта Цойнерта с использованием функции arraw (ES6)
источник
Один лайнер
источник
Поскольку все ответы допускают
NaN
включение, я решил добавить, что если вы хотите быстро привести массив смешанных значений к числам, которые вы можете сделать.источник