2014-02-20 2 views
0

"1,2,3"[1,2,3]으로 변환하고 싶습니다. ""을 배열로 변환 할 때 예외가 있습니다. 내가 [""] 이니까. 제 사건에는 유효하지 않습니다. 그래서 번호 나 문자열인지 확인해야합니다. 코드에서 이것을 보자.문자열을 int 배열로 변환하십시오.

function someWayToParse(some_string) { 
    var final_product = []; 

    var tmp_array = some_string.split(','); 

    //if some_string == "" tmp_array will result [""]; 
    if (tmp_array[0].length===0) 
     return []; 

    for (var item in tmp_array) 
     final_product.push(parseInt(tmp_array[item], 10)); 

    return final_product; 
} 

var stringToParse = "1,2,3"; 

var array_of_ints = someWayToParse(stringToParse); 

나는 함수에서이를 수행하고 가능한 실수를 피하는 가장 좋은 방법을 찾고있다. 호기심을 위해서 효율적으로 기억하십시오. 그것을 위해

+4

이 질문은이 http://codereview.stackexchange.com/ – Satpal

+0

1) 첫 번째 빈 문자열 검사에 가장 적합하기 때문에 오프 주제 것으로 보인다, 2)'for..in'을 사용하여 배열을 반복합니다. – raina77ow

+0

@ raina77ow 1)에 동의하지만 2)에 대한 약간의 정교함을 원합니다. 나 잘못 이해하지 마라. 나는 왜 네가 틀렸다고 말하지 않고 왜 그 이유를 배우고 싶지 않다. –

답변

4

작은 코드는 다음과 같습니다

function myConverter(string) { 
    if (!string) return []; 
    return string.split(',').map(Number); 
} 

console.log(myConverter('1,2,3')); 
+0

raina77ow는 내가 처음에는 빈 문자열을 확인하고 나머지는 논리를 사용할 수 있다고 말했습니다. 처음으로이 map()을 보았습니다. 나는 사용하기 조금 전에 google 할 것이다. 그러나 합법적 인 것처럼 보인다. –

+0

@ MiihloSupic 두 번째로 코드를 읽은 후에 빈 문자열에 대해 반환 할 내용을 언급했음을 알았 기 때문에 구현에 추가했습니다. – Tibos

+0

오늘 아침처럼지도에 익숙지 않은 분은 [link] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) 감사합니다. @Tibos. –