我有下面的字符串
var a = "1,2,3,4";
当我…
var b = a.split(',');
我得到b为["1","2","3","4"]
我能做点什么让b等于[1,2,3,4]吗?
我有下面的字符串
var a = "1,2,3,4";
当我…
var b = a.split(',');
我得到b为["1","2","3","4"]
我能做点什么让b等于[1,2,3,4]吗?
当前回答
作为一种变体,你可以使用组合_。Map和_。来自lodash库的多种方法。整个转型将更加紧凑。以下是官方文档中的一个例子:
_.map(['6', '8', '10'], _.ary(parseInt, 1));
// → [6, 8, 10]
其他回答
如果您需要将字符串数组转换为数字,这将非常有效。
const numbers = arr => arr.map(Number);
numbers(['1', '2', '3','4']); // [1, 2, 3, 4]
您可以使用JSON。解析,添加括号格式化数组
常量 a = “1,2,3,4”; const myArray = JSON.parse('[${a}]') console.log(myArray) console.info('pos 2 = ', myArray[2])
使用Array.from,试试这个:
Let b = ["1", "2", "3", "4"]; b = Array.from(b,Number); console.log (b);
由于所有的答案都允许包含NaN,所以我想补充一句,如果您想快速地将一个混合值的数组转换为数字,您可以这样做。
var a = "1,2,3,4,foo,bar";
var b = a.split(',');
var result = b.map(_=>_|0) // Floors the number (32-bit signed integer) so this wont work if you need all 64 bits.
// or b.map(_=>_||0) if you know your array is just numbers but may include NaN.
Array.from()详情请访问MDN
let a = "1,2,3,4";
let b = Array.from(a.split(','),Number);
or
let c = ["1", "2", "3", "4"].map(Number);
B和c是一个数字数组。
演示:
设a = "1,2,3,4"; let b = Array.from(a.s split(','),Number); let c = ["1", "2", "3", "4"].map(Number); Console.log (' b: ${b}, c: ${c} ');