2014-06-30 5 views
1
Array1 = ['1,2,3'] 

어떻게 숫자가 아닌 값으로 변환하여 검색 할 수 있습니까? 나는 parseInt를 시도해 왔지만, 최종 결과로 1을 얻을 수 있습니다.자바 스크립트의 배열 및 문자열

감사합니다.

+1

@NiettheDarkAbsol 반면에, 그는 그 안에 하나의 문자열 요소' '1,2,3''이있는 배열을 원할 수도 있습니다 :) – Anri

답변

1

예에서와 같이 문자열이 포함 된 배열로 시작하는 경우 split()을 사용해야합니다.

예 :

Array1 = ['1,2,3']; 
var new_array = Array1[0].split(','); // new_array is ["1", "2", "3"] 
for (var i = 0; i < new_array.length; i++) { 
    new_array[i] = parseInt(new_array[i]); 
} 
// new_array is now [1, 2, 3] 
+1

배열을 반복하기 위해'for (var i in new_array)'를 사용하면 안됩니다 . 그것은 객체의 속성을 반복합니다. 배열의 요소는 때로는 똑같지 만 항상 그런 것은 아닙니다. 대신에 for (var i = 0; i jfriend00

+0

@ jfriend00 공정한 점; 편집 됨. –

1

는 일반적으로 parseInt() 입력으로 아무것도 (시간 문자열의 대부분을) 받아 해당 입력에서 정수를 반환합니다. 정수가없는 경우는 NaN를 돌려줍니다.

왜 당신이 1을 얻고 있습니까?

parseInt()를 사용할 때마다 입력 된 문자를 문자로 읽으려고합니다. 그래서 당신의 입력에 따라

var Array1 = ['1,2,3']; 

먼저 얻을의 '1'이후 그 ','(숫자가 아닌 쉼표) 그래서 정수로 '1'변환로서 돌려줍니다 너의 결과. 문제의

해결 방법 : 배열 요소 등의 쉼표로 구분 된 문자열을 저장하는 이유

var Array1 = ['1,2,3']; 
//just displayed the first element of the array, use for or foreach to loop through all the elements of the array 
alert(Array1[0].split(',')[0]); 
1

내가 다시 보일 것이다; 그러나 추론이 특정 디자인에 유효하다면 질문에 쉼표로 구분 된 두 개 이상의 문자열이있는 배열이 있습니까?

당신이 할 수있는 경우에, 실제로 정수의 배열을 사용하도록 설계를 다시 작동하므로 사용

var arr = [1,2,3]; 

대신 ['1,2,3'].

당신이 배열 요소로 쉼표로 분리 된 문자열을 저장하는 경우 다음과 같은 것을 사용하는 정수의 배열로 각각의 인덱스를 얻을 수 있습니다

var array1 = ['1,2,3', '4,5,6,7']; 

function as_int_array(list, index) { 
    return list[index].split(',').map(function(o) { return parseInt(o,10); }); 
} 
console.log("2nd element: %o", as_int_array(array1, 1)); 
// => 2nd element: [4,5,6,7] 

희망을.

관련 문제