코틀린을 사용하는데에 차이점이 존재했다.

1. Array

//Java
String[] javaArray = {"1", "2", "3"};

//Kotlin  : Array<String> 부분은 생략이 가능하다.
val kotlinArray: Array<String> = arrayOf("1", "2", "3");
val kotlinArray arrayOf("1", "2", "3");

문법이 너무 신기하다.


2. 배열의 사용법

//Until 끝 값을 포함하지 않는 범위를 생성 (시작값 ≤ i < 끝값).
for (i in 1 until 10) {
    println(i) // Prints numbers from 1 to 9 (10 is excluded)
}

//DownTo 값을 감소시키며 반복.
for (i in 10 downTo 1) {
    println(i) // Prints numbers from 10 to 1
}

//Step 반복 간격을 설정 (기본값은 1).
for (i in 1..10 step 2) {
    println(i) // Prints 1, 3, 5, 7, 9
}

꽤나 많은 것들이 확장 되는 것 같다.


3. print

여러 가지가 있지만, 그 중에 JavaScript template literal 처럼 사용하는게 너무 신기했다.

//JavaScript
const literalWord = 'value of Literal'
console.log(`literalWord : ${literalWord}`)

//Kotlin
val literalWord: String = "value of Literal"
println("literalWord : $literalWord");

어떤가? 너무 유사해보이지 않은가??


4. when

fun getGrade (examScore: Int): Char {
    return when {
        examScore >= 90 -> 'A'
        examScore >= 80 -> 'B'
        examScore >= 70 -> 'C'
        examScore >= 60 -> 'D'
        else -> 'F'
    }
}
val grade = getGrade(80)
println("grade: $grade") //B

JavaScript 에서 switch case 와 동일해보인다.
문법자체는 더 간결하고 깔끔하며 break; 를 걸어줄 필요가 없어서 편의성이 더 높다.


5. set

//1. mutable set : 가변
val mutableAnimalSet = mutableSetOf("Lion", "Elephant", "Dog", "1", "2", "1")
println("mutableAnimalSet: $mutableAnimalSet")

//2. immutable set : 불변
val animalSet = setOf("Lion", "Elephant", "Dog", "1", "2", "1")
println("animalSet: $animalSet")

신기했던 건 setOf, mutableSetOf 함수를 사용하면, 중복된 내용은 삭제가 된다는 것이었다.

//output
mutableMap: {key1=Lion, key2=Elephant, key3=Dog}




React.js, Next.js 등을 공부하던 와중
회사에서 인턴 직원분이 백엔드 코드를 짜고 제출하는 모습을 봤다
내용도 꽤나 괜찮았다
이에 자극받아 백엔드 쪽 공부의 필요성을 느끼게 되어 Kotlin 코틀린 공부를 시작하게 되었다.

 

반응형

도움이 되셨다면 광고 한번 클릭해주세요. 블로그 운영에 큰 힘이 됩니다. 감사합니다.

안녕하세요 상훈입니다.

json 객체(object) 형태문자열 json 객체화 하려면 간단하게 

JSON.parse(str);

하면된다. 

 

추가적으로 배열(Array) 또한 가능하다. (몰랐다)

 

■ 배경설명

현재 프로젝트가 Web → Native(React Native) → Web 이기 때문에 내 입맛대로 데이터의 형식을 설정할 수 없기 때문에, 배열로 변환하는 방법 또한 알게되었다.

 

■ 결론

일단 결과부터 말하자면, 방법은 다음과 같다.

// 배열 형태의 문자열
// (JSON객체형태가 곧바로 string으로 변환되어나온 형태)

let arryStr = "[\"안녕하세요.\",\"안녕히가세요.\"]";

// 문자열 → 배열
arryStr = JSON.parse(arryStr);

 

console창에서 확인

배열(Array) 인 것을 알 수 있다.

 

그러나, 

typeof(arryStr); //Object

라고 출력된다. (으잉?)

 

위처럼 사용해도 배열에 대한 모든 기능들은 동작하니 문제는 없을 것이다.

 

하지만 기분이 찜찜하고 이상하니 조금 더 파고들어가보았다.

 

■ 부연설명

위에서 얻은 arryStr 을 가지고 새로운 배열에 반복문을 통해 push 해서 type을 해보겠다.

let arryStr = "[\"안녕하세요.\",\"안녕히가세요.\"]";
arryStr = JSON.parse(arryStr);

// ---------------------------------------

let result = []; //새로운 빈 배열 선언

arryStr.forEach( (item, idx) => {  //반복문을 통해
    result.push(item);             //빈배열에 값을 집어넣기
});

console.log(result);               //['안녕하세요.', '안녕히가세요.']
console.log(typeof(result));       //object

console.log

 

????

result 라는 녀석은 배열로 선언해서 배열로 끝났고, 각각의 인덱스도 가지고 있는데, 
type을 확인해보니 객체(Object)로 출력되어져 있다.

 

비교대상이 배열인지 여부를 확인하는 메서드를 사용해서 판독해보자.

> Array.isArray() :: 비교대상이 배열이면 true, 아니면 false를 반환하는 메서드.

// 비교 대상 ( ) 안에 있는 대상이 배열이면 true, 아니면 false를 출력한다.

// Array.isArray() 를 통해서 한 번 더 배열인지 여부를 판독
console.log(Array.isArray(arryStr)); //true
console.log(Array.isArray(result2)); //true

 

왜냐하면, 자바스크립트(JavaScript)에서의 배열(Array)는 배열이 아니라 객체(Object)이기 때문이다. 
자세한 내용은 아래의 링크를 참고해주시길 바랍니다.

https://poiemaweb.com/js-array-is-not-arrray

 

Array | PoiemaWeb

자바스크립트 배열은 배열이 아니다.

poiemaweb.com

 

JSON.parse() 하나로 이렇게 글이 길어질 줄 몰랐지만, 길어졌다.

이상입니다.

 

참고

 

Array.isArray() - JavaScript | MDN

Array.isArray() 메서드는 인자가 Array인지 판별합니다.

developer.mozilla.org

 

미리보기를 해보니 역슬래쉬가 \로 출력되네요.

작성할때는 역슬래쉬 정상적으로 되었는데 말이죠. 유의해주시길 바랍니다!

이미지 참고 ㅎㅎ

 

도움이 되셨다면 광고 한번 클릭해주세요. 블로그 운영에 큰 힘이 됩니다. 감사합니다.

반응형

 

 

 

비동기 통신(AJAX, AXIOS)를 통해 데이터를 받아오고, 해당 데이터를 2회 매개 변수로 전달해주는 과정에서 데이터가 정순 -> 역순으로 변하였다.
그리고 데이터를 배열에 삽입 해주어야한다.

그래서 해당 데이터를 다시 정순으로 돌리려고 생각하다, 굳이 그럴 필요가 없다 느끼고, 
반복문을 이용해서 루프가 돌 때마다 배열의 앞에 넣어주도록 하였다.

 

■ 배열의 앞에 요소를 넣는 법

unshift()

예시)

ArrayData = [ ]
for(i=0; i<responseData1.length; i++){

    ArrayData.unshift(responseData1[i].ColumName)   //배열에 json타입의 값을 앞에 집어넣기
 }
console.log(ArrayData)

콘솔창 출력 내용

 

■ 배열의 뒤에 요소를 넣는 법

ArrayData = [ ]
for(i=0; i<responseData2.length; i++){    
      ArrayData.push(responseData2[i].day_total)  //배열에 json타입의 값을 뒤에 집어넣기
}   
console.log(ArrayData)

콘솔창 출력 내용

 

 

 

반응형

+ Recent posts