[JavaScript] ๋ฐฐ์ด (2)
ํ๊ทธ: javascript · ๋ฐฐ์ด · sort · filter · find · findIndex · map · forEach · reduce
1. sort
๋ฐฐ์ด์ ์์๋ฅผ ์ ์ ํ ์์น์ ์ ๋ ฌํ ํ ๊ทธ ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค. ์ ๋ ฌ์ stable sort๊ฐ ์๋ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ ์ ๋ ฌ ์์๋ ๋ฌธ์์ด์ ์ ๋์ฝ๋ ์ฝ๋ ํฌ์ธํธ๋ฅผ ๋ฐ๋ฆ ๋๋ค.
[Array.prototype.sort() - JavaScript | MDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) |
1): sort ๊ธฐ๋ณธ
1. sort ๊ธฐ๋ณธ
{
const data = [10,50,20,60,80,90];
data.sort();
console.log(data); // ๋ฌธ์์ด ์ ๋์ฝ๋๋ก ์ ๋ ฌ
}
=>๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
[ 10, 20, 50, 60, 80, 90 ]
[Done] exited with code=0 in 0.059 seconds
----------------------------------------------------------------------------
2. sort ์๋ฆฟ์ ์ ๋ ฌ
{
const data = [100,150,120,610,80,90];
data1.sort();
console.log(data); // ์ด๋ ๊ฒ ํ๋ฉด ์๋ฆฟ์๋๋ก ๋ถ๋ฅ๋ฅผ ํ๊ธฐ๋๋ฌธ์ ์ ๋ ฌ์ด ๋์ง์๋๋ค
}
=>๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
[ 100, 120, 150, 610, 80, 90 ]
[Done] exited with code=0 in 0.056 seconds
----------------------------------------------------------------------------
3. ์ค๋ฆ์ฐจ์ ํด๊ฒฐ ๋ฐฉ๋ฒ (1)
{
// ์ค๋ฆ ์ฐจ์ ์ ๋ ฌ
const data = [100,150,120,610,80,90];
data.sort(function(a,b){
if(a>b){
return 1
}else if(a<b){
return -1
}else{
//a,b๊ฐ ๊ฐ์์๋
return 0
}
});
console.log(data);
}
=>๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
[ 80, 90, 100, 120, 150, 610 ]
[Done] exited with code=0 in 0.054 seconds
----------------------------------------------------------------------------
3-1. ์ค๋ฆ์ฐจ์ ํด๊ฒฐ ๋ฐฉ๋ฒ (2)
{
const data = [100,150,120,610,80,90];
data.sort((a,b)=>a-b); // ๊ฒฐ๊ณผ๊ฐ์ด ํ๋ ์ผ๋ return ์๋ต
console.log(data);
}
=>๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
[ 80, 90, 100, 120, 150, 610 ]
[Done] exited with code=0 in 0.052 seconds
----------------------------------------------------------------------------
4. ๋ด๋ฆผ ์ฐจ์ ํด๊ฒฐ
{
// ๋ด๋ฆผ ์ฐจ์ ์ ๋ ฌ
const data = [100,150,120,610,80,90];
data.sort(function(a,b){
if(a>b){
return -1
}else if(a<b){
return 1
}else{
//a,b๊ฐ ๊ฐ์์๋
return 0
}
});
console.log(data);
}
=>๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
[ 610, 150, 120, 100, 90, 80 ]
[Done] exited with code=0 in 0.065 seconds
2): sort ํ์ฉ
1. ๊ธฐ๋ณธ ์ถ๋ ฅ
{
const obj = [
{name:'์ฒ ์',age:22},
{name:'์ํฌ',age:25},
{name:'ํ์ด',age:27},
{name:'์งฑ๊ตฌ',age:26},
{name:'์ ๋ฆฌ',age:21},
{name:'๋งน๊ตฌ',age:22},
{name:'๋ฏผ์ง',age:25},
{name:'์ฌ์',age:21},
{name:'๋ค๋ฏธ',age:22},
]
obj.sort((a,b)=>{
if(a.age>b.age){
return 1;
}else if(a.age<b.age){
return -1;
}else{
return 0;
}
})
console.log(obj);
}
=> ๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
[
{ name: '์ ๋ฆฌ', age: 21 },
{ name: '์ฌ์', age: 21 },
{ name: '์ฒ ์', age: 22 },
{ name: '๋งน๊ตฌ', age: 22 },
{ name: '๋ค๋ฏธ', age: 22 },
{ name: '์ํฌ', age: 25 },
{ name: '๋ฏผ์ง', age: 25 },
{ name: '์งฑ๊ตฌ', age: 26 },
{ name: 'ํ์ด', age: 27 }
]
[Done] exited with code=0 in 0.068 seconds
----------------------------------------------------------------------------
2. ์ผํญ์ฐ์ฐ์ผ๋ก ์ถ๋ ฅ
{
const obj = [
{name:'์ฒ ์',age:22},
{name:'์ํฌ',age:25},
{name:'ํ์ด',age:27},
{name:'์งฑ๊ตฌ',age:26},
{name:'์ ๋ฆฌ',age:21},
{name:'๋งน๊ตฌ',age:22},
{name:'๋ฏผ์ง',age:25},
{name:'์ฌ์',age:21},
{name:'๋ค๋ฏธ',age:22},
]
obj.sort((a,b)=>{
//์ผํญ์ฐ์ฐ์ ์กฐ๊ฑด ? true : false
return a.age > b.age ? 1 : a.age < b.age ? -1 : 0
});
console.log(obj);
}
=> ๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
[
{ name: '์ ๋ฆฌ', age: 21 },
{ name: '์ฌ์', age: 21 },
{ name: '์ฒ ์', age: 22 },
{ name: '๋งน๊ตฌ', age: 22 },
{ name: '๋ค๋ฏธ', age: 22 },
{ name: '์ํฌ', age: 25 },
{ name: '๋ฏผ์ง', age: 25 },
{ name: '์งฑ๊ตฌ', age: 26 },
{ name: 'ํ์ด', age: 27 }
]
[Done] exited with code=0 in 0.068 seconds
2. filter
์ฃผ์ด์ง ํจ์์ ํ ์คํธ๋ฅผ ํต๊ณผํ๋ ๋ชจ๋ ์์๋ฅผ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฐํํฉ๋๋ค.
์กฐ๊ฑด์ ๋ง๋ ๊ฐ์ ์ถ๋ ฅํ ๋ , ๊ฒฐ๊ณผ๊ฐ ๋ฐฐ์ด๋ก ์ถ๋ ฅ
[Array.prototype.filter() - JavaScript | MDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) |
1): filter ๊ธฐ๋ณธ
/* 3์ ๋ฐฐ์๋ง ์ถ๋ ฅ */
{
const arr = [10,30,50,20,60,40];
const result1 = arr.filter((element,index,arr)=>{
// element ์์๊ฐ , index ์ธ๋ฑ์ค๋ฒํธ , arr ๋ฐฐ์ด๊ฐ
return element % 3 ==0;
});
console.log(result1);
}
=> ๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
[ 30, 60 ]
==================================
[Done] exited with code=0 in 0.089 seconds
----------------------------------------------------------------------------
/* filter,indexOf ๋ฅผ ์ด์ฉํด์ ๊น์ด ๋ค์ด๊ฐ์๋ ๊ฐ์ ์ถ๋ ฅ */
{
const arr = ['๊ฐํธ๋','์ ์ฌ์','์ด์๊ทผ','๊นํฌ์ฒ ','์ดํจ๋ฆฌ','๊น๋ค๋ฏธ']
const txt = '๊น';
//
const result = arr.filter(item=>item.indexOf(txt)!=-1)
console.log(result);
}
=>๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
[ '๊นํฌ์ฒ ', '๊น๋ค๋ฏธ' ]
[Done] exited with code=0 in 0.053 seconds
2): filter ํ์ฉ
/* ์ํฌ ์ญ์ ํ๊ณ ๋๋จธ์ง๋ง ์ถ๋ ฅ */
{
const data = [
{name:'์ฒ ์',age:22,city:'์ ์ฃผ'},
{name:'์ํฌ',age:25,city:'์์ธ'},
{name:'ํ์ด',age:27,city:'๋์ '},
{name:'์งฑ๊ตฌ',age:26,city:'๋๊ตฌ'},
{name:'๋งน๊ตฌ',age:22,city:'๋ถ์ฐ'},
];
const data4 = data.filter((item)=>{
return item.name != '์ํฌ'
});
for(let item of data4){
console.log(item.name,item.age,item.city)
};
}
=> ๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
์ฒ ์ 22 ์ ์ฃผ
ํ์ด 27 ๋์
์งฑ๊ตฌ 26 ๋๊ตฌ
๋งน๊ตฌ 22 ๋ถ์ฐ
[Done] exited with code=0 in 0.056 seconds
----------------------------------------------------------------------------
/* ์ด๋ฆ์ด '๊ตฌ'๊ฐ ๋ค์ด๊ฐ ๋ฐ์ดํฐ๋ง ์ถ๋ ฅ */
{
const data = [
{name:'์ฒ ์',age:22,city:'์ ์ฃผ'},
{name:'์ํฌ',age:25,city:'์์ธ'},
{name:'ํ์ด',age:27,city:'๋์ '},
{name:'์งฑ๊ตฌ',age:26,city:'๋๊ตฌ'},
{name:'๋งน๊ตฌ',age:22,city:'๋ถ์ฐ'},
];
const txt = '๊ตฌ';
// includes,forEach ํ์ฉ
const data1 = data.filter(item=>item.name.includes(txt));
// console.log(data1);
data1.forEach(item=>console.log(item))
}
=> ๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
{ name: '์งฑ๊ตฌ', age: 26, city: '๋๊ตฌ' }
{ name: '๋งน๊ตฌ', age: 22, city: '๋ถ์ฐ' }
[Done] exited with code=0 in 0.064 seconds
3. find,findIndex
1). find : ์ฃผ์ด์ง ํ๋ณ ํจ์๋ฅผ ๋ง์กฑํ๋ ์ฒซ ๋ฒ์งธ ์์์ ๊ฐ์ ๋ฐํํฉ๋๋ค. ๊ทธ๋ฐ ์์๊ฐ ์๋ค๋ฉด undefined๋ฅผ ๋ฐํํฉ๋๋ค.
[Array.prototype.find() - JavaScript | MDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/find) |
2). findIndex: ์ฃผ์ด์ง ํ๋ณ ํจ์๋ฅผ ๋ง์กฑํ๋ย ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์์ ๋ํย ์ธ๋ฑ์ค๋ฅผ ๋ฐํํฉ๋๋ค. ๋ง์กฑํ๋ ์์๊ฐ ์์ผ๋ฉด -1์ ๋ฐํ
[Array.prototype.findIndex() - JavaScript | MDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex) |
/* 40์ธ ๋ฐ์ดํฐ ํ๊ฐ๋ง ์ถ๋ ฅ */
{
const arr = [10,20,30,40,50];
const arr3 = arr.find((item)=>{
return item==40;
})
console.log(arr3);
}
=> ๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
40
[Done] exited with code=0 in 0.054 seconds
----------------------------------------------------------------------------
/* 30์ธ ์ธ๋ฑ์ค๋ฒํธ ์ถ๋ ฅ */
{
const arr = [10,20,30,40,50];
const arr5 =arr.findIndex(item=>item==30);
console.log(arr5); // ํด๋น ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ์ถ๋ ฅ
}
=> ๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
2
[Done] exited with code=0 in 0.129 seconds
4. map
๋ฐฐ์ด ๋ด์ ๋ชจ๋ ์์ ๊ฐ๊ฐ์ ๋ํ์ฌ ์ฃผ์ด์ง ํจ์๋ฅผ ํธ์ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค
๋ฐํ๊ฐ: ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด ์คํํย callback
์ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด.
callback: ์๋ก์ด ๋ฐฐ์ด ์์๋ฅผ ์์ฑํ๋ ํจ์. ๋ค์ ์ธ ๊ฐ์ง ์ธ์๋ฅผ ๊ฐ์ง๋๋ค.
(1): currentValue: ์ฒ๋ฆฌํ ํ์ฌ ์์.
(2): index Optional: ์ฒ๋ฆฌํ ํ์ฌ ์์์ ์ธ๋ฑ์ค.
(3): array Optional: map()์ ํธ์ถํ ๋ฐฐ์ด.
(4): thisArg Optional: callback์ ์คํํ ๋ this๋ก ์ฌ์ฉ๋๋ ๊ฐ.
[Array.prototype.map() - JavaScript | MDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map) |
/* map์ผ๋ก callback ํจ์ ์ถ๋ ฅ */
{
const arr = [10,20,30,40,50,60];
//map => react์์ ํ๋ฉด์ ๋ฐ๋ณต(for๋ฌธ)์ฒ๋ผ ์ถ๋ ฅํ๊ธฐ ์ํด ์ฌ์ฉ. (์๋ก์ด ๋ฐฐ์ด ์์ฑ)
const arr1 = arr.map(function(current,index,array){
console.log('current:',current,'index:',index,'array:',array);
return current
})
}
=> ๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
current: 10 index: 0 array: [ 10, 20, 30, 40, 50, 60 ]
current: 20 index: 1 array: [ 10, 20, 30, 40, 50, 60 ]
current: 30 index: 2 array: [ 10, 20, 30, 40, 50, 60 ]
current: 40 index: 3 array: [ 10, 20, 30, 40, 50, 60 ]
current: 50 index: 4 array: [ 10, 20, 30, 40, 50, 60 ]
current: 60 index: 5 array: [ 10, 20, 30, 40, 50, 60 ]
[Done] exited with code=0 in 0.079 seconds
----------------------------------------------------------------------------
/* map ๋ฐ์ดํฐ ์ถ๋ ฅ */
{
const arr = [10,20,30,40,50];
//arr์ map์ผ๋ก ์ฒ๋ฆฌ ํ
ํ๋ฆฟ ๋ฆฌํฐ๋
const arr1 = arr.map(function(item){
return (`${item}`)
})
console.log(arr1.join(''))
}
=>๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
1020304050
[Done] exited with code=0 in 0.054 seconds
5. forEach
์ฃผ์ด์ง ํจ์๋ฅผ ๋ฐฐ์ด ์์ ๊ฐ๊ฐ์ ๋ํด ์คํ
๋ฐํ๊ฐ: ย undefined
callback: ์๋ก์ด ๋ฐฐ์ด ์์๋ฅผ ์์ฑํ๋ ํจ์. ๋ค์ ์ธ ๊ฐ์ง ์ธ์๋ฅผ ๊ฐ์ง๋๋ค.
(1): currentValue: ์ฒ๋ฆฌํ ํ์ฌ ์์.
(2): index Optional: ์ฒ๋ฆฌํ ํ์ฌ ์์์ ์ธ๋ฑ์ค.
(3): array Optional: forEach()์ ํธ์ถํ ๋ฐฐ์ด.
(4): thisArg Optional: callback์ ์คํํ ๋ this๋ก ์ฌ์ฉ๋๋ ๊ฐ.
[Array.prototype.forEach() - JavaScript | MDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) |
/* forEach ๋ฐ์ดํฐ ์ถ๋ ฅ */
{
const arr = [0,1,2,3,4,5,6,7,8,9,10];
arr.forEach(function (element,index,array){
console.log(`${array}์ ${index}๋ฒ์งธ์ ์์๋ ${element}`);
});
}
=> ๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
0,1,2,3,4,5,6,7,8,9,10์ 0๋ฒ์งธ์ ์์๋ 0
0,1,2,3,4,5,6,7,8,9,10์ 1๋ฒ์งธ์ ์์๋ 1
0,1,2,3,4,5,6,7,8,9,10์ 2๋ฒ์งธ์ ์์๋ 2
0,1,2,3,4,5,6,7,8,9,10์ 3๋ฒ์งธ์ ์์๋ 3
0,1,2,3,4,5,6,7,8,9,10์ 4๋ฒ์งธ์ ์์๋ 4
0,1,2,3,4,5,6,7,8,9,10์ 5๋ฒ์งธ์ ์์๋ 5
0,1,2,3,4,5,6,7,8,9,10์ 6๋ฒ์งธ์ ์์๋ 6
0,1,2,3,4,5,6,7,8,9,10์ 7๋ฒ์งธ์ ์์๋ 7
0,1,2,3,4,5,6,7,8,9,10์ 8๋ฒ์งธ์ ์์๋ 8
0,1,2,3,4,5,6,7,8,9,10์ 9๋ฒ์งธ์ ์์๋ 9
0,1,2,3,4,5,6,7,8,9,10์ 10๋ฒ์งธ์ ์์๋ 10
[Done] exited with code=0 in 0.057 seconds
----------------------------------------------------------------------------
/* forEach ๋ฐ์ดํฐ ์ถ๋ ฅ */
{
const arr = [0,1,2,3,4,5,6,7,8,9,10];
arr.forEach((item,i)=>{
if(i==4){
console.log("๋ฐ๋ณต๋ฌธ ์ค๋จ")
// break
// continue
/* break,continue๋ฌธ์ forEach๋ฌธ์์ ์ฌ์ฉํ ์ ์๋ค */
}
console.log(`${[i]}๋ฒ์งธ ์์ =>${arr[i]}`)
})
}
=>๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
0๋ฒ์งธ ์์ =>0
1๋ฒ์งธ ์์ =>1
2๋ฒ์งธ ์์ =>2
3๋ฒ์งธ ์์ =>3
๋ฐ๋ณต๋ฌธ ์ค๋จ
4๋ฒ์งธ ์์ =>4
5๋ฒ์งธ ์์ =>5
6๋ฒ์งธ ์์ =>6
7๋ฒ์งธ ์์ =>7
8๋ฒ์งธ ์์ =>8
9๋ฒ์งธ ์์ =>9
10๋ฒ์งธ ์์ =>10
[Done] exited with code=0 in 0.055 seconds
5. reduce
๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด ์ฃผ์ด์ง ๋ฆฌ๋์(reducer) ํจ์๋ฅผ ์คํํ๊ณ , ํ๋์ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํ.
๋ฐํ ๊ฐ: ๋์ ๊ณ์ฐ์ ๊ฒฐ๊ณผ ๊ฐ.
[Array.prototype.reduce() - JavaScript | MDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce) |
1): ๋ฆฌ๋์ ํจ์๋ ๋ค ๊ฐ์ ์ธ์๋ฅผ ๊ฐ์ง๋๋ค.
(1): ๋์ฐ๊ธฐ (acc)
(2): ํ์ฌ ๊ฐ (cur)
(3): ํ์ฌ ์ธ๋ฑ์ค (idx)
(4): ์๋ณธ ๋ฐฐ์ด (src)
2): callback: ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด ์คํํ ํจ์. ๋ค์ ๋ค ๊ฐ์ง ์ธ์๋ฅผ ๋ฐ์ต๋๋ค.
(1): accumulator:๋์ฐ๊ธฐ๋ ์ฝ๋ฐฑ์ ๋ฐํ๊ฐ์ ๋์ ํฉ๋๋ค. ์ฝ๋ฐฑ์ ์ด์ ๋ฐํ๊ฐ ๋๋, ์ฝ๋ฐฑ์ ์ฒซ ๋ฒ์งธ ํธ์ถ์ด๋ฉด์ initialValue๋ฅผ ์ ๊ณตํ ๊ฒฝ์ฐ์๋ initialValue์ ๊ฐ์ ๋๋ค.
(2): currentValue: ์ฒ๋ฆฌํ ํ์ฌ ์์.
(3): currentIndex Optional: ์ฒ๋ฆฌํ ํ์ฌ ์์์ ์ธ๋ฑ์ค. initialValue๋ฅผ ์ ๊ณตํ ๊ฒฝ์ฐ 0, ์๋๋ฉด 1๋ถํฐ ์์ํฉ๋๋ค.
(4): array Optional: reduce()๋ฅผ ํธ์ถํ ๋ฐฐ์ด.
(5): initialValue Optional: callback์ ์ต์ด ํธ์ถ์์ ์ฒซ ๋ฒ์งธ ์ธ์์ ์ ๊ณตํ๋ ๊ฐ. ์ด๊ธฐ๊ฐ์ ์ ๊ณตํ์ง ์์ผ๋ฉด ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋น ๋ฐฐ์ด์์ ์ด๊ธฐ๊ฐ ์์ด reduce()๋ฅผ ํธ์ถํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
/* reduce ๋ฐ์ดํฐ ์ถ๋ ฅ */
{
let arr = [10,20,30,40];
let total = arr.reduce(function(acc,cur,idx,src){
console.log(acc);
console.log("--------------------")
console.log(cur);
console.log("--------------------")
console.log(idx);
console.log("--------------------")
console.log(src);
return acc+cur
})
console.log(`ํฉ:${total}`);
}
=> ๊ฒฐ๊ณผ๊ฐ
[Running] node "/workspaces/codespaces-blank/index.js"
accumulator: 10 ์ฝ๋ฐฑ๋ฐํ๊ฐ
--------------------
currentValue: 20 ํ์ฌ์์
--------------------
currentIndex: 1 ์ธ๋ฑ์ค
--------------------
array: [ 10, 20, 30, 40 ] ๋ฐฐ์ด
accumulator: 30 ์ฝ๋ฐฑ๋ฐํ
--------------------
currentValue: 30 ํ์ฌ์์
--------------------
currentIndex: 2 ์ธ๋ฑ์ค
--------------------
array: [ 10, 20, 30, 40 ] ๋ฐฐ์ด
accumulator: 60
--------------------
currentValue: 40 ํ์ฌ์์
--------------------
currentIndex: 3 ์ธ๋ฑ์ค๊ฐ
--------------------
array: [ 10, 20, 30, 40 ] ๋ฐฐ์ด
ํฉ:100
[Done] exited with code=0 in 0.061 seconds