์ฐ๊ด๋ ๋ฐ์ดํฐ๋ค์ ํ๋์ ๊ทธ๋ฃน
์ผ๋ก ๋ฌถ์ด์ ํจ์จ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ.
๐ ๋ฐฐ์ด์ ์ ์ฅ๋๋ ์์(elements)๋ ์์ฐจ์ (0๋ถํฐ ์์)์ผ๋ก ์ ์ฅ๋๊ณ
๊ณ ์ ํ index๊ฐ
์ ๊ฐ๋๋ค.
๐ ๋ฐฐ์ด์ ํน์ element์ ์ ๊ทผํ๊ธฐ ์ํด์๋arrayValue[index]
์ ํ์์ผ๋ก ํ๋ค.
๐ ๋ฐฐ์ด์ ์์ index๋ก ๋ฌธ์์ด(์ฐ๊ด ๋ฐฐ์ด)์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๋ฌด์กฐ๊ฑด์ ์
๋ง ํ์ฉ
๐ ์์ฑ ์ ๊ทผ์(์ ๋๋ ๊ดํธ ํ๊ธฐ๋ฒ์ผ๋ก ๊ฐ์ฒด์ ์์ฑ์ ์ ๊ทผํ ์ ์๋๋ก ํด์ฃผ๋ ๋ฐฉ์)๋ฅผ ์ฌ์ฉํด ์ ์ ์ธ ํค์ ์ ๊ทผํ ๊ฒฝ์ฐ, ๋ฐฐ์ด ๋ฆฌ์คํธ์ ์์๊ฐ ์๋๋ผ ๋ฐฐ์ด ๊ฐ์ฒด์ ์์ฑ ๋ณ์๋ฅผ ์ค์ ํ๊ฑฐ๋ ํ์ํด์ผํจ
โ ์ฐ๊ด๋ฐฐ์ด
์ฐ๊ด ๋ฐฐ์ด(associative array)์ ์๋ฃ๊ตฌ์กฐ์ ํ๋๋ก, ํค ํ๋์ ๊ฐ ํ๋๊ฐ ์ฐ๊ด๋์ด ์์ผ๋ฉฐ ํค๋ฅผ ํตํด ์ฐ๊ด๋๋ ๊ฐ์ ์ป์ ์ ์๋ค. ์ฐ์ ๋ฐฐ์ด, ๊ฒฐํฉํ ๋ฐฐ์ด, ๋งต(map), ์ฌ์ (dictionary)์ผ๋ก ๋ถ๋ฅด๊ธฐ๋ ํ๋ค.
Array๋ฅผ ์ ์ธํ๋ ๋ฐฉ๋ฒ 3๊ฐ์ง (a, b, c๊ฐ ๊ฐ๋ค) var a = new Array(1,2,3); // a ๊ฐ์ฒด์ ํ๋กํ ํ์ ์์ฑ(new ์์ฑ์) var b = [1,2,3]; // ๋๊ดํธ ์์ ๋ฐฐ์ด์ ๋์ดํด ์ค๋ค var c = new Array(); // ์์ฑ์ ๊ฐ์ฒด ์์ฑ ํ pushํ์ฌ ์์๋ฅผ ๋ฃ์ด์ค๋ค c.push(1); //1 c.push(2); //2 c.push(3); //3 // ์ฒซ๋ฒ์งธ ์ธ์์ ํ์์ ๋ฐ๋ฅธ ์ฐจ์ด var a = new Array(5); console.log(a); //[undefined,undefined,undefined,undefined,undefined] // ๊ฐ์ด ์๋ 5๊ฐ์ ์์๋ฅผ ํฌํจํ array๋ฅผ ์์ฑํ๋ค. ๋ฐ์ดํ๋ก ๊ฐ์ธ์ค์ผ ํจ var b = new Array('5'); console.log(b); // string object 5๋ฅผ ์์๋ก ํ๋ array๋ฅผ ์์ฑํ๋ค. ["5"] var c = new Array(new Number(5)) console.log(c); // number object 5๋ฅผ ์์๋ก ํ๋ array๋ฅผ ์์ฑํ๋ค. [5]
associative array(์ฐ๊ด๋ฐฐ์ด)๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ฐฐ์ด์ด ์๋๋ผ object๋ก ์ฒ๋ฆฌํ๋ค. // ์์ฑ(property) ์ถ๊ฐ codingeverybody = new Array(); codingeverybody['html'] = '์น๋ฌธ์๋ฅผ ๋ง๋ ๋ค'; codingeverybody['css'] = 'html์ ๊พธ๋ฉฐ์ค๋ค'; codingeverybody['javascript'] = 'html์ ๋์ ์ผ๋ก ์ ์ดํ๋ค'; codingeverybody['php'] = 'html์ ์๋ฒ์ธก์์ ๋์ ์ผ๋ก ์์ฑํ๋ค'; console.log(codingeverybody['html']); // string, ์น๋ฌธ์๋ฅผ ๋ง๋ ๋ค console.log(codingeverybody['css']); // string, html์ ๊พธ๋ฉฐ์ค๋ค // ์์ ์ถ๊ฐ( = push) codingeverybody.push(1); codingeverybody.push(2); console.log(codingeverybody); // array, [1,2] console.log(codingeverybody.length); // number, 2 // codingeverybody๋ array object์ด์ง๋ง, ๋์์ object์ด๊ธฐ๋ ํ๊ธฐ ๋๋ฌธ์ 'html', 'css', 'javascript', 'php'๋ object codingeverybody์ ์์๊ฐ ์๋๋ผ property(์์ฑ)์ผ๋ก ์ฌ์ฉ๋๋ค. // ๊ทธ๋์ ์์ ์ฝ๋์์ codingeverybody.length ๊ฐ 2๊ฐ ๋๋ค. (push๋ก ์ถ๊ฐ๋ 1,2๋ง ์นด์ดํธํ์ฌ ์ด 2
โ ๋ฐฐ์ด์ ์์๋ฅผ ์ถ๊ฐํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ push ๋ฑ์ ํตํด ๋ฃ์ด์ฃผ๋ ๊ฒ!!! (์์ฑ ์ถ๊ฐ์ ๋ค๋ฅด๋ค)
โ ๋ฐฐ์ด์ ๊ธธ์ด(์์์ ๊ฐฏ์)๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ์ .length
๋ฅผ ํ์ฉํ๋ค.
โก ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์๋ฅผ ์ฐพ์ผ๋ ค๋ฉด ๋ฐฐ์ด์ด๋ฆ[0]
โก ๋ฐฐ์ด์ ๋ง์ง๋ง ์์๋ฅผ ์ฐพ์ผ๋ ค๋ฉด ๋ฐฐ์ด์ด๋ฆ[๋ฐฐ์ด์ด๋ฆ.length -1]
const arr = ['first', 'second', 'third', 'forth', 'fifth']
console.log(arr[0]) // 'first'
console.log(arr[arr.length-1]) // 'fifth'
// arr[index]๋ ์์๋ฅผ ์ฐพ๋๋ค. ๋๊ดํธ ์์ arr.length-1์ ํ๋ฉด ๋ง์ง๋ง index๊ฐ ๋์ค๊ธฐ ๋๋ฌธ์
// ๊ฒฐ๊ตญ arr[index]๊ฐ ๋๋ฉฐ, ๋ง์ง๋ง index์ ์์๋ฅผ ์ฐพ์ ์ ์๋ค
// ๋ฐฐ์ด์ ์์์ ์ ๊ทผ ํ๋ ๋ฐฉ๋ฒ >> indexํ์ฉ
let a = new Array(1,2,3);
console.log(a[0]); // 1
console.log(b[1]); // 2
console.log(c[2]); // 3
let arr = new Array(1,2,3); // for ๋ฌธ ํ์ฉ for(let i = 0; i < arr.length; i++){ console.log(arr[i]); // 1, 2, 3 } // arr์ ์ธ๋ฑ์ค๋ก i๋ฅผ 0๋ถํฐ 2๊น์ง ์์ฐจ์ ์ผ๋ก ๋์ ํ ํ์ arr[index]์ถ๋ ฅ // for ... of ํ์ฉ for( let el of arr ){ console.log(el); // 1, 2, 3 } // forEach ํ์ฉ arr.forEach( el => console.log(el)) // ํด๋น ๋ฐฐ์ด ์์ ๋ค์ด์๋ ๊ฐ๋ง๋ค ์ฝ๋ฐฑํจ์๋ฅผ ์คํํ์ฌ ์ถ๋ ฅํ๋ค. // ์ฆ ๋ฐฐ์ด์ ๋ชจ๋ ๊ฐ์ด ์ฝ๋ฐฑํจ์๋ก ๋ค์ด๊ฐ ๋ค ํด๋น ์ฝ๋ฐฑํจ์๋ฅผ ์ถ๋ ฅํ๊ธฐ ๋๋ฌธ์ ์๋ ๋ฐฐ์ด(arr)์ ์ถ๋ ฅํ๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ
๐ 2๊ฐ ์ด์์ ๋ฐฐ์ด์ ํ๋์ ๋ฌธ์์ด๋ก ๊ฒฐํฉ
ํด์ returnํ๋ค.
(2๊ฐ ์ด์์ ๋ฌธ์์ด์ ์ฐ๊ฒฐํ๋ ค๋ฉด concat ํจ์๋ฅผ ์ค์ฒฉ์์ผ์ ์ฌ์ฉ)
๐ ๋ ๋ฌธ์์ด ์ฌ์ด์ ์ฐ๊ฒฐ ์ฐ์ฐ์(||)๋ concatํจ์์ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ. (๊ฐ || ๊ฐ || ๊ฐ ์ผ๋ก ์ฌ์ฉ)
๐ ๋ฌธ๋ฒ: array1.concat(array2);
//concatํจ์๋ฅผ ๋ฉ์๋๋ก ํ์ฉํ์ฌ ๋ฐฐ์ด return let a = new Array(1,2,3); let b = new Array(4,5,6); let c = new Array(7,8,9); a.concat(b,c); // [1,2,3,4,5,6,7,8,9] //concatํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด return let a = 'apple' a.concat(' is fresh,' , 'good'); // apple is fresh, good //์ฐ๊ฒฐ ์ฐ์ฐ์(||)๋ฅผ ์ฌ์ฉํ์ฌ concat๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ return let a = new Array(1,2,3); let b = new Array(4,5,6); let c = new Array(7,8,9); a||b||c; // [1,2,3,4,5,6,7,8,9]
๐ ๋ฐฐ์ด์ ์์๋ฅผ ๊ฒฐํฉํด์ ํ๋์ ๋ฌธ์์ด๋ก ๋ง๋ ๋ค. ๋ฐฐ์ด์ String์ผ๋ก ๋ณํ
๐ ๋ฌธ๋ฒ: array.join(separator๊ตฌ๋ถ์);
๐ ๋ฐํ: ๋ฌธ์์ด
// separator(๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ ๊ตฌ๋ถํ ๊ตฌ๋ถ์๋ฅผ ์ง์ ) ์์ let weather = ['๋ฐ๋', '๋น', '๋ถ']; let join1 = weather.join(); // ๊ธฐ๋ณธ ๊ตฌ๋ถ์. ๊ฒฐ๊ณผ๊ฐ์ ์ปด๋ง(,)๋ก ๊ตฌ๋ถ๋จ // ์ถ๋ ฅ๊ฒฐ๊ณผ: '๋ฐ๋,๋น,๋ถ' let join2 = weather.join(', '); // "์ปด๋ง ๋์ด์ฐ๊ธฐ"๋ก ํํ // ์ถ๋ ฅ๊ฒฐ๊ณผ: '๋ฐ๋, ๋น, ๋ถ' let join3 = weather.join(' + '); // "๋์ด์ฐ๊ธฐ ํ๋ฌ์ค ๋์ด์ฐ๊ธฐ"๋ก ํํ // ์ถ๋ ฅ๊ฒฐ๊ณผ: '๋ฐ๋ + ๋น + ๋ถ' let join4 = weather.join(''); // ๊ณต๋ฐฑ์์ด ํํ // ์ถ๋ ฅ๊ฒฐ๊ณผ: '๋ฐ๋๋น๋ถ'
๐ ๋ฌธ์์ด์ ํ๋์ ๋ฐฐ์ด์์ ์์๋ก ๊ตฌ๋ถํด์ ๋ด๋๋ค. String์ ๋ฐฐ์ด๋ก ๋ณํ
๐ ๋ฌธ๋ฒ: string.split(separator๊ตฌ๋ถ์);
๐ ๋ฐํ: ๋ฐฐ์ด
// separator(๋ฌธ์์ด์ ๊ฐ ์์๋ฅผ ๊ตฌ๋ถํ ๊ตฌ๋ถ์๋ฅผ ์ง์ ) ์์ let weather = '๋ฐ๋, ๋น, ๋ถ'; let split1 = weather.split(); // ๊ตฌ๋ถ์๊ฐ ์์ผ๋ฉด ์ ์ฒด๋ฅผ ํ ๋ฒ์ ๋ฐฐ์ด๋ก ๋ด์ // ์ถ๋ ฅ๊ฒฐ๊ณผ: [ '๋ฐ๋, ๋น, ๋ถ' ] let split2 = weather.split(' '); // ๋์ด์ฐ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ชผ๊ฐ์ ๋ฐฐ์ด์ ๋ด์ // ์ถ๋ ฅ๊ฒฐ๊ณผ: [ '๋ฐ๋,', '๋น,', '๋ถ' ] let split3 = weather.split(' + '); // ์ฝค๋ง๋ฅผ ๊ธฐ์ค์ผ๋ก ์ชผ๊ฐ์ ๋ฐฐ์ด์ ๋ด์ // ์ถ๋ ฅ๊ฒฐ๊ณผ: [ '๋ฐ๋', ' ๋น', ' ๋ถ' ]
โ
string.split( separator, limit )
โก ๊ดํธ ์์ ์ฒซ ๋ฒ์งธ ์๋ฆฌ๋๊ตฌ๋ถ์
๋ฅผ ๋ฃ์ด์ค์ผ ํ๋ฉฐ ํ์์ฌํญ์ด๋ค.
โก ๋๋ฒ์งธ ์๋ฆฌ๋ ์ชผ๊ฐ์ด ๋ด์ ์์์ ๊ฐฏ์๋ฅผ ๋ปํ๋ค.weather.split(',', 2) // ์ถ๋ ฅ๊ฒฐ๊ณผ: [ '๋ฐ๋', ' ๋น' ] // 2๋ฒ์งธ index ์ด์ ๊น์ง ์๋ผ์ ๋ด๋๋ค
๐ pop
array.pop()
๋ฐฐ์ด์์ ๋ง์ง๋ง ์์๋ฅผ ์ ๊ฑฐํ ํ์ ์ด๋ฅผ return ( <-> shift)๐ push
array.push()
๋ฐฐ์ด์์ ๋ง์ง๋ง์ ์์๋ฅผ ์ถ๊ฐํ ํ์ return ( <-> unshift)
๋ฌธ๋ฒ โก array.push ( ์ถ๊ฐํ element1, ์ถ๊ฐํ element2 . . . ์ถ๊ฐํ element3 )
๋ฐํ๊ฐ โก ์์๊ฐ ์ถ๊ฐ๋ ์ดํ์ ๋ฐฐ์ด์ ์์ ์(length)
pop ๊ณผ push ๋น๊ต // pop let jobs = ['programmer', 'designer', 'teacher'] console.log(jobs); // ['programmer', 'designer', 'teacher'] console.log(jobs.pop()); // ['teacher'] console.log(jobs); // ['programmer', 'designer'] ๋ง์ง๋ง ์์๊ฐ ์ ๊ฑฐ๋ ๋ฐฐ์ด์ด ์ถ๋ ฅ let job1 = jobs.pop(); // jobs.pop(); ํธ์ถ์ ๋ณ์(job1)๋ก ํด์ค ๋ฟ job1; // ['teacher'] // push let jobs = ['programmer', 'designer', 'teacher']; let job2 = jobs.push('singer'); console.log(jobs); // ['programmer', 'designer', 'teacher', 'singer'] console.log(job2); // 4 (์ด ์์ ๊ฐฏ์๊ฐ 4๊ฐ๊ฐ ๋์๊ธฐ ๋๋ฌธ)
๐ shift
array.shift()
๋ฐฐ์ด์์ ์ฒซ๋ฒ์งธ ์์๋ฅผ ์ ๊ฑฐํ ํ์ ์ด๋ฅผ return ( <-> pop)๐ unshift
array.unshift()
๋ฐฐ์ด์์ ์ฒซ๋ฒ์งธ์ ์์๋ฅผ ์ถ๊ฐํ ํ์ return ( <-> push)
๋ฌธ๋ฒ: array.unshift(element1, element2...element3)
๋ฐํ๊ฐ: ์์๊ฐ ์ถ๊ฐ๋ ์ดํ์ ๋ฐฐ์ด์ ์์ ์(length)
shift ์ unshift ๋น๊ต // shift let jobs = ['programmer', 'designer', 'teacher']; console.log(jobs.shift()); // ['programmer'] console.log(jobs); // ['designer', 'teacher'] let job3 = jobs.shift(); // jobs.shift(); ํธ์ถ์ ๋ณ์๋ก ํด์ค ๋ฟ console.log(job3); // ['programmer'] // unshift let jobs = ['programmer', 'designer', 'teacher']; console.log(jobs.unshift('singer')); // 4 console.log(jobs); // ['programmer', 'designer', 'teacher', 'singer'] let job4 = jobs.unshift('singer'); // jobs.unshift(); ํธ์ถ์ ๋ณ์(job4)๋ก ํด์ค ๋ฟ console.log(job4); // 4
๐ ๋ฐฐ์ด์ ํน์ start index๋ถํฐ ํน์ end index๊น์ง ์๋ผ๋ด๋ ๋ฉ์๋
๐ ๋ฌธ๋ฒ: array.slice(start, end)
๐ ๋ฐํ๊ฐ: ์๋ก์ด array ์ถ๋ ฅ
โ end index
๋ ํด๋น ์ธ๋ฑ์ค ์ด์ ๊น์ง๋ก ๋ฒ์๋ฅผ ์ ํํ๋ค.
์ฆ, end index
๋ฅผ 2๋ก ์ง์ ํ๋ฉด, index 1๊น์ง slice ๋๋ค. (end index ์์ฒด๋ ํฌํจํ์ง ์๋๋ค)
let jobs = ['programmer', 'designer', 'teacher', 'singer']; jobs.slice(0,2); // [ 'programmer', 'designer' ] jobs.slice(1,3); // [ 'designer', 'teacher' ]
๐ ์ ๋ ฌ ์์๋ฅผ ์ ์ํ๋ ํจ์
๐ ๋ฌธ๋ฒ: array.sort(sortfunc)
๐ ๋ฐํ๊ฐ: array, ์ ๋ ฌ๋ ๋ฐฐ์ด, ์๊ธฐ ์์ ์ ๋ํ ๋ ํผ๋ฐ์ค ๊ฐ
๐ช ์ ๋ ฌ๊ธฐ์ค
arr.sort( (a,b) => b-a )
let numbers = [9,8,7,6,5,4,3,2,1]; console.log(numbers.sort()); // 1,2,3,4,5,6,7,8,9 (์ซ์๋ 1๋ถํฐ) console.log(numbers); // ์ถ๋ ฅ๊ฒฐ๊ณผ : [1,2,3,4,5,6,7,8,9] let numbers = [20,10,9,8,7,6,5,4,3,2,1]; console.log(numbers.sort()); // ์ถ๋ ฅ๊ฒฐ๊ณผ : [1,10,2,20,3,4,5,6,7,8,9] // ์์์ ์ผ๋ก ์์๋ฅผ ๋ฌธ์๋ก ํ๋ณํ ํ๊ธฐ ๋๋ฌธ์ 10์ด 1๋ค์ ์จ๋ค. const months = ['March', 'Jan', 'Feb', 'Dec']; months.sort(); console.log(months); // ["Dec", "Feb", "Jan", "March"] ์ํ๋ฒณ ์์ผ๋ก const array = [1, 30, 4, 21, 100000]; array.sort(); console.log(array); // [1, 100000, 21, 30, 4] let numbers = [4, 2, 5, 1, 3]; numbers.sort( (a, b) => a - b ); // [1, 2, 3, 4, 5] numbers.sort( (a, b) => b - a ); // [5, 4, 3, 2, 1] numbers.sort( (a, b) => 0 ) // [4, 2, 5, 1, 3] let stringArray = ['Blue', 'Humpback', 'Beluga']; let numberArray = [40, 1, 5, 200]; let numericStringArray = ['80', '9', '700']; let mixedNumericArray = ['80', '9', '700', 40, 1, 5, 200]; function compareNumbers(a, b) { return a - b; } console.log(stringArray.join()); // Blue,Humpback,Beluga console.log(stringArray.sort()); // Beluga,Blue,Humpback console.log(numberArray.join()); // 40,1,5,200 console.log(numberArray.sort()); // 1,200,40,5 console.log(numberArray.sort(compareNumbers)); // 1,5,40,200 console.log(numericStringArray.join()); // 80,9,700 console.log(numericStringArray.sort()); // 700,80,9 console.log(numericStringArray.sort(compareNumbers)); // 9,80,700 console.log(mixedNumericArray.join()); // 80,9,700,40,1,5,200 console.log(mixedNumericArray.sort()); // 1,200,40,5,700,80,9 console.log(mixedNumericArray.sort(compareNumbers)); // 1,5,9,40,80,200,700
๐ ์ ๋ ฌ ์์๋ฅผ ๊ฑฐ๊พธ๋ก ๋ง๋๋ ๋ฉ์๋
๐ ๋ฌธ๋ฒ: array.reverse()
๐ ๋ฐํ๊ฐ: ๊ธฐ์กด array๊ฐ ๋ฐ๋์ด์ ์ถ๋ ฅ
let numbers = [9,8,7,6,5,4,3,2,1]; console.log(numbers.reverse()); // 1,2,3,4,5,6,7,8,9 (์ซ์๋ 1๋ถํฐ) console.log(numbers); // ์ถ๋ ฅ๊ฒฐ๊ณผ : [1,2,3,4,5,6,7,8,9] // ์๋ ๋ฐฐ์ด์ธ numbers์ ๊ฐ์ด ๋ฐ๋์ด์ ์ถ๋ ฅ๋๋ค. (์๋ก์ด ๋ฐฐ์ด์ ๋ง๋๋ ๊ฒ์ด ์๋๋ค)
๐ ๋ฐฐ์ด ๋ด ํน์ ์์๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธํ๋ ๋ฉ์๋
๐ ๋ฌธ๋ฒ: array.includes(element)
๐ ๋ฐํ๊ฐ: true / false ๋ก ๋ฐํ
let fruits = ['apple', 'banana', 'grape', 'mango'] console.log(fruits.includes('apple')); // true console.log(fruits.includes('orange')); // false
๐ ๋ฐฐ์ด ๋ด ํน์ ์์์ index๋ฅผ ๋ฐํ
๐ ๋ฌธ๋ฒ: array.indexOf(element)
๐ ๋ฐํ๊ฐ: ์์์ index๊ฐ ๋ฐํ
let fruits = ['apple', 'banana', 'grape', 'mango'] console.log(fruits.indexOf('apple')); // 0 console.log(fruits.indexOf('orange')); // -1
โ ๋ฐฐ์ด ์์์ ์กด์ฌํ์ง ์๋ ๊ฐ์ด๋ฉด
-1
์ถ๋ ฅ
๐ ๋ฐฐ์ด ๋ด ํน์ ์์์ ๋ง์ง๋ง index๋ฅผ ๋ฐํ
๐ ๋ฌธ๋ฒ: array.lastIndexOf(element)
๐ ๋ฐํ๊ฐ: ๋ง์ง๋ง ์์์ index๊ฐ ๋ฐํ (๊ฐ์ ์์๊ฐ 2๊ฐ ๋ค์ด์์ ๊ฒฝ์ฐ, ๋ง์ง๋ง ์์์ index์ถ๋ ฅ)
โ ๋ฐฐ์ด ์์์ ์กด์ฌํ์ง ์๋ ๊ฐ์ด๋ฉด -1
์ถ๋ ฅ
let fruits = ['apple', 'banana', 'grape', 'mango', 'apple'] console.log(fruits.indexOf('apple')); // 0 // apple ์์๊ฐ 2๊ฐ ์์ ๊ฒฝ์ฐ, ์ฒซ ๋ฒ์งธ index๋ฅผ ์ถ๋ ฅํ๋ค console.log(fruits.lastIndexOf('apple')); // 4 // lastIndexOf๋ฅผ ์ฌ์ฉํ๋ฉด ๋ง์ง๋ง ์์ ๋๋ ๊ฐ์ ์์ ์ค ๋ง์ง๋ง ๋ฒ์งธ ์์์ index๋ฅผ ์ถ๋ ฅ
โ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐฐ์ด๋ด ๋๊ฐ์ ์์์ ์ฒซ ๋ฒ์งธ index๋ฅผ ์ถ๋ ฅํ๊ธฐ ๋๋ฌธ์ ๋ง์ง๋ง ์์๋ฅผ ์ถ๋ ฅํ๊ณ ์ถ์ผ๋ฉด
lastIndexOf
๋ฅผ ์ฌ์ฉํด์ฃผ๋ฉด ๋๋ค
๐ ๋ฐฐ์ด ๋ด ์ฝ๋ฐฑํจ์๋ฅผ ์คํํด์, ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ฒซ ๋ฒ์งธ ์์(true์ธ ์์)๋ฅผ ์ถ๋ ฅ
= ๋ฐฐ์ด ๋ด ์ฝ๋ฐฑํจ์
๋ฅผ ํตํด ์์ ํ๋ ํ๋ ์ ๊ทผํ ๋ค, ์์๊ฐ true์ผ ๋ return
ํ๋ค
๐ ๋ฌธ๋ฒ: array.find( el => ์กฐ๊ฑด)
๐ ๋ฐํ๊ฐ: ์กฐ๊ฑด์ ์ถฉ์กฑํ ์ฒซ ๋ฒ์งธ ์์ ์ถ๋ ฅ
class Student { constructor (name, age, enrolled, score) { this.name = name; this.age = age; this.enrolled = enrolled; this.score = score; } } const students = [ new Student ('A', 29, true, 45), new Student ('B', 28, false, 80), new Student ('C', 30, true, 90), new Student ('D', 40, false, 66), new Student ('E', 18, true, 88), ]; // ์ ์๊ฐ 90์ ์ด์์ธ ํ์ ์ฐพ๊ธฐ const result = students.find( student => student.score===90); console.log(result) // ์ถ๋ ฅ๊ฒฐ๊ณผ: Student { // name: 'C', // age: 30, // enrolled: true, // score: 90, // __proto__: Student { constructor: ฦ Student() } // }
๐ ๋ฐฐ์ด ๋ด ์ฝ๋ฐฑํจ์๋ฅผ ์คํํด์, ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ชจ๋ ์์(true์ธ ์์)๋ฅผ ์ถ๋ ฅ
= ๋ฐฐ์ด ๋ด ์ฝ๋ฐฑํจ์
๋ฅผ ํตํด ์์ ํ๋ ํ๋ ์ ๊ทผํ ๋ค, ์์๊ฐ true์ผ ๋ return
ํ๋ค
๐ ๋ฌธ๋ฒ: array.filter( el => ์กฐ๊ฑด)
๐ ๋ฐํ๊ฐ: ์กฐ๊ฑด์ ์ถฉ์กฑํ ๋ชจ๋ ์์ ์ถ๋ ฅ
class Student { constructor (name, age, enrolled, score) { this.name = name; this.age = age; this.enrolled = enrolled; this.score = score; } } const students = [ new Student ('A', 29, true, 45), new Student ('B', 28, false, 80), new Student ('C', 30, true, 90), new Student ('D', 40, false, 66), new Student ('E', 18, true, 88), ]; // ๋ฑ๋ก๋ ํ์(enrolled === true) ๋ชจ๋ ์ฐพ๊ธฐ const result = students.filter( student => student.enrolled); console.log(result) // ์ถ๋ ฅ๊ฒฐ๊ณผ: Student { // name: 'A', // age: 29, // enrolled: true, // score: 45, // __proto__: Student { constructor: ฦ Student() } // } // Student { // name: 'C', // age: 30, // enrolled: true, // score: 90, // __proto__: Student { constructor: ฦ Student() } // } // Student { // name: 'E', // age: 18, // enrolled: true, // score: 88, // __proto__: Student { constructor: ฦ Student() } // }
๐ ๋ฐฐ์ด ์์ ์ด๋ค ์์๋ผ๋ ์ฃผ์ด์ง ํ๋ณ ํจ์(์ฝ๋ฐฑํจ์)๋ฅผ ํต๊ณผํ๋์ง ํ
์คํธํ๋ค
์กฐ๊ฑด์ ํ๋๋ผ๋ ์ถฉ์กฑํ๋ฉด true๋ฅผ ๋ฐํํ๋ค.
๐ ๋ฌธ๋ฒ: array.some ( el => ์กฐ๊ฑด)
๐ ๋ฐํ๊ฐ: true/false ๋ฐํ
// 50์ ์ดํ์ ํ์์ด ์๋์ง ์๋์ง ํ ์คํธ(์์ผ๋ฉด true, ์์ผ๋ฉด false) const result = students.some( student => student.score < 50; console.log(result) // true
๐ ๋ฐฐ์ด ๋ด ๋ชจ๋ ์์ ๊ฐ๊ฐ์ ๋ํ์ฌ ์ฃผ์ด์ง ํจ์๋ฅผ ํธ์ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์ ์ฝ๋ฐฑํจ์๋ฅผ ์คํํด์ ์กฐ๊ฑด์ ๋ถํฉํ๋ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํ
๐ ๋ฌธ๋ฒ: array.map( el => ์กฐ๊ฑด)
๐ ๋ฐํ๊ฐ: ์๋ก์ด ๋ฐฐ์ด return
// ํ์๋ค์ ์ ์๋ง ๋ฐํ const result = students.map( student => student.score) console.log(result); // ์ถ๋ ฅ๊ฒฐ๊ณผ: [45, 80, 90, 66, 88] // ํ์๋ค์ ์ ์๋ง ๋ฐํํ ๋ฐฐ์ด์ 10์ฉ ๋ํด์ฃผ๊ธฐ const sumResult = result.map( el => el + 10) console.log(result); // ์ถ๋ ฅ๊ฒฐ๊ณผ: [55, 90, 100, 76, 98]
๐ ๋ฐฐ์ด ๋ด ๋ชจ๋ ์์ ๊ฐ๊ฐ์ ๋ํ์ฌ ์ฃผ์ด์ง ํจ์๋ฅผ ํธ์ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์ ์ฝ๋ฐฑํจ์๋ฅผ ์คํํด์ ์กฐ๊ฑด์ ๋ถํฉํ๋ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํ
๐ ๋ฌธ๋ฒ: array.map( el => ์กฐ๊ฑด)
๐ ๋ฐํ๊ฐ: ์๋ก์ด ๋ฐฐ์ด return
const result = students.map( student => student.score) console.log(result); // ์ถ๋ ฅ๊ฒฐ๊ณผ: [45, 80, 90, 66, 88]
๐ ๋ฐฐ์ด ๋ด ๋ชจ๋ ์์ ๊ฐ๊ฐ์ ๋ํ์ฌ ์ฃผ์ด์ง ํจ์๋ฅผ ํธ์ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์ ์ฝ๋ฐฑํจ์๋ฅผ ์คํํด์ ์กฐ๊ฑด์ ๋ถํฉํ๋ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํ
๐ ๋ฌธ๋ฒ: array.reduce( (๋์ ๊ฐ, ํ์ฌ๊ฐ, index, el) => {return ๊ฒฐ๊ณผ}, ์ด๊ธฐ๊ฐ );
๐ ๋ฐํ๊ฐ: ์๋ก์ด ๋ฐฐ์ด return
// ๊ณต์ let sum = arr.reduce( (acc, cur, index, el) => { return acc + cur }, 0); console.log(sum) // ์์ const numArr = [1, 2, 3, 4, 5] let result = numArr.reduce( (acc, cur, index) => { // console.log(acc, cur, index) // (๋์ ํ์ฌ๊ฐ index) // 0 1 0 // 1 2 1 // 3 3 2 // 6 4 3 // 10 5 4 return acc + cur; } , 0); console.log(result) // 15 (์ด ๋์ ๊ฐ ์ถ๋ ฅ) // ๋์ ๊ฐ๊ณผ ํ์ฌ๊ฐ๋ง ๋ํ๋ด๋ ์์ const numArr = [1, 2, 3, 4, 5] let result = numArr.reduce( (acc, cur ) => { // console.log(acc, cur) // 0 1 // 1 2 // 3 3 // 6 4 // 10 5 return acc + cur; }, 0); console.log(result)