[javascript] 12-08 p.w.js.part2 javascript study
2021-12-08
12-08 (수)
-
for .. in 문
“integer property” 는 string 으로 바꿔도, number 로 바꿔도 동일한 값일 때, 숫자순서대로 정렬이 됀다.
// Math.trunc is a built-in function that removes the decimal part alert( String(Math.trunc(Number("49"))) ); // "49", same, integer property alert( String(Math.trunc(Number("+49"))) ); // "49", not same "+49" ⇒ not integer property alert( String(Math.trunc(Number("1.2"))) ); // "1", not same "1.2" ⇒ not integer property </script>반면에, key가 정수형이 아닐 때, 생성순으로 정렬이 된다.
let user = { name: "John", surname: "Smith" }; user.age = 25; // add one more // non-integer properties are listed in the creation order for (let prop in user) { alert( prop ); // name, surname, age }그래서 국가코드와 같은 문제를 의도했던 정렬대로 하기 위해서는 속임수를 쓰는데, integer형이 아닌 non-integer 형태로 하면 된다. 각 국가코드의 맨 앞에
"+"기호를 붙히면 작동한다.let codes = { "+49": "Germany", "+41": "Switzerland", "+44": "Great Britain", // .., "+1": "USA" }; for (let code in codes) { alert( +code ); // 49, 41, 44, 1 }