문자열 아래에 있습니다-
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))