1. 배열에서 중복 데이터 제거.
const data = ['sejiwork', 'sejinjja', 'sejinjja', '홍길동', '홍길동', '홍길동', '홍길동']
const uniqueData = Array.from(new Set(data))
console.log('uniqueData', uniqueData)
const uniqueAlpha = Array.from(new Set('sadfsdafas'))
console.log('uniqueAlpha', uniqueAlpha)
위 처럼 Set은 생성자의 인자로 iterable 객체를 받을 수 있고, 해당 데이터에서 중복이 없어지는 특징 을 같고 있고,
Array.from은 length속성과 인덱싱된 요소를 같는 유사배열객체와, map과 set처럼 순회가능한 객체를 이용하여 배열을 만들 수 있기 때문에 간단하게 두가지를 이어서 중복을 제거 할 수 있다.
2. 배열 자르기 (앞에서)
const data = ['sejiwork', 'sejinjja', 'sejinjja', '홍길동', '홍길동', '홍길동', '홍길동']
data.length = 3
console.log(data)
배열의 길이를 변경만 해주었을 뿐인데, 앞에서 3개만 남았다.
const stringData = 'abcde'
stringData.length = 2
console.log(stringData)
아쉽게도 문자열은 지원하지 않는다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/length
length 변경을 이용한 배열 자르기는 위에서도 나오는 예제이니 적극적으로 이용해 보도록 하자.
3. 배열 자르기 (뒤에서)
const data = ['sejiwork', 'sejinjja', 'sejinjja', '홍길동', '홍길동', '홍길동', '홍길동']
console.log(data.slice(-3))
const stringData = 'abcde'
console.log(stringData.slice(-3))
다행히도 slice의 스펙은 똑같이 작동한다.
length는 왜 다를까?
4. some
const test = [1, 2, 3, 4].some(v => {
console.log(v)
return v > 2
})
console.log(test)
위처럼 2보다 큰 값이 있는가? 라는 질의를 할 수 있는 함수 이다.
특징으로는 결론적으로 2보다 큰 하나의 값만 찾으면 되기 때문에, 추후의 로직은 돌지 않는다.
5. every
const test = [1, 2, 3, 4].every(v => {
console.log(v)
return v > 2
})
console.log(test)
some 바로 뒤에 every라는 함수를 소개 한 것이니 다들 알 것이다. 모두 2보다 큰지를 확인 할 수 있는 함수이다.
특징으로는 모두 2보다 큰지 확인 해야 하기 때문에, 2이하인 값 하나라도 만나면 추후 로직은 돌지 않는다.
댓글
댓글 쓰기