2017-10-19 5 views
1

개체 배열이 있고 정수 또는 문자열을 포함 할 수있는 id 속성이 있습니다. 나는 그 속성을 비교하기 위해 사용하고 있지만 정수가 아니면 항상 id을 정수로 변환하거나 문자열인지 묻고 변환하는 것이 더 효율적인지 추측하고 있습니다. 첫 번째 코드는 항상 변환하기 때문에 두 가지 조건 경우자바 스크립트가 int 값을 int로 파싱

for (let x of myArray) { 
    let id = -1; 
    if (typeof x.id === 'string') { 
     id = parseInt(x.id, 10); 
    } 
    if (id === 3) { ... } 
} 

가 나도 몰라 :

for (let x of myArray) { 
    if (parseInt(x.id, 10) === 3) { 
     ... 
    } 
} 

또는이 코드는 ...

let myArray = [{id: 1, ...otherprops}, {id: 2, ...otherprops}, {id: '3', ...otherprops}, {id: '4', ...otherprops}]; 

이 더 효율적입니다 :이 말은 더 낫다.

+0

@Bian Goole - [tag : parsing] 태그는 문자열을 숫자 유형으로 변환하지 않습니다. 추가하기 전에 태그의 용도에 대해 읽으십시오. –

+0

@DavidBowling 귀하의 의견에 감사 드리며, 이는 빠른 해결책을 찾은 방법이었습니다. 나는 당신이 제안한 것을 지금 읽고 있습니다. – assembler

답변

3

아시다시피 숫자가 아닌 숫자로 변환하려면 unary plus +을 사용할 수 있습니다.

var id = +x.id; 
+0

그게 문제 야. 그걸 몰랐어. 고마워. – assembler