1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
let arr = [
'1.txt', '1.json', '1.wav', '2.txt', '2.json',
'2.wav', '3.txt', '3.wav', '4.txt',
'4.json', '4.wav', '5.txt', '5.json', '5.wav',
'6.txt', '6.json', '6.wav', '7.txt', '7.json',
'7.wav', '8.txt', '8.json', '8.wav', '9.txt',
'9.json', '10.txt', '10.json', '10.wav',
'11.txt', '11.json', '11.wav', '12.txt', '12.json',
'12.wav', '13.txt', '13.json', '13.wav', '14.txt',
'14.json', '14.wav', '15.txt', '15.json', '15.wav',
'16.txt', '16.json', '16.wav', '17.json',
'17.wav', '18.txt', '18.wav', '19.txt',
'19.json', '19.wav'
]
function uniqueFileName(files) {
let newArr = [];
files.map(file => {
newArr.push(file.split('.')[0]);
})
const unique = [... new Set(newArr)];
return unique
}
let total = {}
console.log(uniqueFileName(arr));
for (file of uniqueFileName(arr)) {
// const filename = file.split('.')[0];
// console.log(file)
total[file] = { txt: '', wav: '', json: '' }
}
for (file of arr) {
const filename = file.split('.')[0] //파일명
const ext = file.split('.')[1]; //확장자명
total[filename][ext] = file;
}
console.log(total);
let result = Object.values(total);
console.log(result);
|
실행 결과
객체의 키값을 유동적으로 넣을경우 object[key]라는 문법을 사용하는 것과
객체를 배열로 다시 바꾸는 Object.values()라는 메서드를 사용하였다.
추가로 중복을 제거해주는 new Set도 사용하였다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Set
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/values
'잡단한것들 > 코딩연습장' 카테고리의 다른 글
[JS] yyyy-mm-dd형태로 만들기 (Date객체 활용하기) (0) | 2021.10.19 |
---|---|
자바스크립트 비동기 (0) | 2021.09.01 |
Tus프로토콜을 사용한 업로드 (0) | 2021.08.10 |
file.slice is not a function, 비배열 객체, 유사배열 (0) | 2021.08.09 |
Node.js, FormData => multer모듈로 업로드 하기 (0) | 2021.07.29 |