[javascript] 숫자 문자열을 숫자 배열로 변환하는 방법은 무엇입니까?

문자열 아래에 있습니다-

var a = "1,2,3,4";

내가 할 때-

var b = a.split(',');

내가 얻을 b["1", "2", "3", "4"]

내가 얻을 수있는 뭔가 할 수있는 b로를 [1, 2, 3, 4]?



답변

골퍼를위한 나의 2 센트 :

b="1,2,3,4".split`,`.map(x=>+x)

backquote는 문자열 리터럴이므로 괄호를 생략 할 수 있습니다 (분할 함수의 특성으로 인해) split(','). 문자열은 이제 배열입니다. 우리는 문자열의 정수를 반환하는 함수로 각 값을 매핑해야하므로 x=>+x( Number함수 (6 대신 5 문자) 보다 짧음 )은 다음과 같습니다.

function(x){return parseInt(x,10)}// version from techfoobar
(x)=>{return parseInt(x)}         // lambda are shorter and parseInt default is 10
(x)=>{return +x}                  // diff. with parseInt in SO but + is better in this case
x=>+x                             // no multiple args, just 1 function call

좀 더 명확하기를 바랍니다.


답변

Array.map각 요소를 숫자로 변환 하는 데 사용할 수 있습니다 .

var a = "1,2,3,4";

var b = a.split(',').map(function(item) {
    return parseInt(item, 10);
});

문서 확인


또는 사용자가 지적한대로보다 우아하게 : thg435

var b = a.split(',').map(Number);

Number()나머지는 어디에서 할 것인가 : 여기를 확인 하십시오


참고 : 를 지원하지 않는 이전 브라우저의 map경우 다음과 같이 직접 구현을 추가 할 수 있습니다.

Array.prototype.map = Array.prototype.map || function(_x) {
    for(var o=[], i=0; i<this.length; i++) {
        o[i] = _x(this[i]);
    }
    return o;
};


답변

정수로 맵핑하십시오.

a.split(',').map(function(i){
    return parseInt(i, 10);
})

map모든 배열 항목을보고 제공된 함수에 전달하고 해당 함수의 반환 값이있는 배열을 반환합니다. map이전 브라우저에서는 사용할 수 없지만 jQuery 또는 밑줄 과 같은 대부분의 라이브러리 에는 크로스 브라우저 버전이 포함되어 있습니다.

또는 루프를 선호하는 경우 :

var res = a.split(",");
for (var i=0; i<res.length; i++)
{
    res[i] = parseInt(res[i], 10);
}


답변

+string문자열을 숫자로 변경하려고 시도합니다. 그런 다음 Array.map함수를 사용 하여 모든 요소를 ​​변경하십시오.

"1,2,3,4".split(',').map(function(el){ return +el;});


답변

자세한 내용은 Array.from () MDN으로 이동

var a = "1,2,3,4";
var b = Array.from(a.split(','),Number);

b 숫자의 배열입니다


답변

더 짧은 해결책 : 인수를 매핑하고 전달하십시오 Number.

var a = "1,2,3,4";
var b = a.split(',');
console.log(b);
var c = b.map(Number);
console.log(c);


답변

이것은 매우 간단합니다.

["1", "2", "3", "4"].map(i=>Number(i))