프로젝트를 진행하면서 날짜데이터를 배열로 받게되었다.
이것을 View로 뿌리기 위해서 고민하던 중, 다양한 방법들이 있었는데
배열내장함수인 join을 사용해
arr.join('(구분 값)')으로 처리를 한 뒤, 3항 연산자로 날짜만을 빼려고 해보았다.
console.log(data.ansRegdate.join('.'))
으로 2022.5.28.6.51.24
로 만든 뒤,
시간을 제외하면 월은 1~12, 일은 1~31일까지 있으므로 8~10까지의 길이를 가진다. 그래서 다시 배열을 3개로 잘랐다.
slice(start,end) => start인덱스부터 end인덱스까지 자르겠다.
console.log(data.ansRegdate.slice(0,3))
[2022, 5, 28]
그 후 다시 join을 사용하면
2022.5.28
이 나온다.
방법이 너무 다양해 배열내장함수 + 객체에 대한 공부도 할겸 여러가지를 찾아봤다.
만약 객체로 이 데이터를 받았다면?
const newarr = [];
for(let item of Object,values(객체이름)){
newarr.push(item)
}
객체->배열로 담은 후 처리.
배열을 객체로 바꾸는 방법
1. 배열내장함수인 reduce(f(){})를 사용.
2. Object.assign({}, 배열이름)
3. spread연산자를 이용( {...배열이름})
+spread연산자란?
전개 구문을 사용하면 배열이나 문자열과 같이 반복 가능한 문자를 0개 이상의 인수 (함수로 호출할 경우) 또는 요소 (배열 리터럴의 경우)로 확장하여, 0개 이상의 키-값의 쌍으로 객체로 확장시킬 수 있습니다.
사실 자세하게 쓰려고 전부 코딩했는데 결국 까먹게 된다. 그래서 틈틈히 자주봐주고 써보는 연습이 필요할 것 같다.
객체를 배열로 바꾸는 방법
arr.entries(객체이름)
==> 얘는 근데 key-value쌍으로 되어있는 애들을 하나의 배열로 묶어준다. (위의 날짜를 객체로 바꾼 후 다시 배열로 바꾼모습)
정확하게 바꾸려면 반복문을 통해 하나씩 넣어주면 된다.
splice와 slice의 차이
arr.splice(시작 인덱스(n), 삭제할 갯수, 아이템)
-> arr의 현재 n번째 인덱스부터 삭제할 갯수만큼 지울거다. 그리고 배열에 n번째 인덱스부터 아이템을 추가할거다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
var myFish = ['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon'];
var removed = myFish.splice(myFish.length - 3, 2);
myFish is ["parrot", "anemone", "sturgeon"]
removed is ["blue", "trumpet"]```