Eu tenho abaixo da string -
var a = "1,2,3,4";
quando eu faço -
var b = a.split(',');
Eu entendo b
como["1", "2", "3", "4"]
posso fazer algo para obter b
como [1, 2, 3, 4]
?
javascript
arrays
Ashwin
fonte
fonte
Você pode usar
Array.map
para converter cada elemento em um número.Verifique os documentos
Ou mais elegantemente, como indicado pelo usuário: thg435
Onde
Number()
faria o resto: confira aquiNota: Para navegadores mais antigos que não suportam
map
, você pode adicionar uma implementação como:fonte
map(Number)
."1.1,2,3".split(",").map(Number)
é[1.1, 2, 3]
enquanto"1.1,2,3".split(",").map(item => parseInt(item, 10))
é[1, 2, 3]
Mapeie-o para números inteiros:
map
examina cada item da matriz, passa-o para a função fornecida e retorna uma matriz com os valores de retorno dessa função.map
não está disponível em navegadores antigos, mas a maioria das bibliotecas como jQuery ou underscore inclui uma versão entre navegadores.Ou, se você preferir loops:
fonte
+string
tentará alterar a string para um número. Em seguida, use aArray.map
função para alterar todos os elementos.fonte
Array.from () para obter detalhes, vá para MDN
b
é uma matriz de númerosfonte
Uma solução mais curta: mapeie e passe os argumentos para
Number
:fonte
fonte
Como uma variante, você pode usar combinação
_.map
e_.ary
métodos da biblioteca lodash . Toda a transformação será mais compacta. Aqui está um exemplo da documentação oficial :fonte
Não há necessidade de usar lambdas e / ou dar
radix
parâmetroparseInt
, basta usarparseFloat
ou emNumber
vez disso.Razões:
Está funcionando:
É mais curto.
É um pouco mais rápido e tira proveito do cache, quando a
parseInt
abordagem - não :Aviso: No Firefox
parseInt
funciona cerca de quatro vezes mais rápido, mas ainda mais lento que outros. No total:+e
<Number
<parseFloat
<parseInt
fonte
O sublinhado js way -
fonte
Versão de Matt Zeunert com a função arraw (ES6)
fonte
Um forro
fonte
Como todas as respostas permitem
NaN
a inclusão, pensei em acrescentar que, se você quiser converter rapidamente uma matriz de valores mistos em números, poderá fazê-lo.fonte