array
๋ฐฐ์ด
์์๊ฐ ์๋ ์ปฌ๋ ์ ์ ์ ์ฅํ๊ธฐ์ํ ์๋ฃ๊ตฌ์กฐ
ํน๋ณํ ๊ฐ์ฒด์ค ํ ์ข
๋ฅ์ด๊ธฐ ๋๋ฌธ์ length๋ผ๋ ํ๋กํผํฐ์ ๋๊ดํธ ์ ๊ทผ
๋ฑ ์ด์ฉ์ด ๊ฐ๋ฅํ๋ค.
์ ์ธ๋ฐฉ๋ฒ
let arr = new Array();
let arr = [];
ํน์ง
๋ฐฐ์ด ์์์ ์๋ฃํ์ ์ ์ฝ์ด ์๋ค.
let arr = [ '์ฌ๊ณผ', { name: '์ด๋ณด๋ผ' }, true, function () { alert('์๋ ํ์ธ์.'); }, ];
for...of
๋ฌธ ์ด์ฉํด์ ์ํ ๊ฐ๋ฅlength ํ๋กํผํฐ
๋ฅผ ์ด์ฉํด์ ๋ฐฐ์ด์ ์๋ฅด๋ ๊ฒ ๊ฐ๋ฅํ๋ค.let arr = [1, 2, 3, 4, 5]; arr.legth = 2; alert(arr); //1,2
๋ด๋ถ์ ์ผ๋ก toString ๋ฉ์๋๊ฐ ๊ตฌํ๋์ด ์์ด ํธ์ถ์ ์ผํ๋ฅผ ๊ตฌ๋ถํ ๋ฌธ์์ด์ด ๋ฐํ๋๋ค.
let arr = [1, 2, 3]; alert(arr); //1,2,3 alert(String(arr) === '1,2,3'); //true
๋ฐฐ์ด๋ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ ์์ ํ ๋ณต์ ๊ฐ ์๋ ์ฐธ์กฐ์ ์ํ ๋ณต์ฌ๊ฐ ์ด๋ฃจ์ด์ง๋ค.
๊ฐ์ฒดํ์ด๊ธฐ ๋๋ฌธ์
typeof
๋ก๋ ์ผ๋ฐ ๊ฐ์ฒด์ ๋ฐฐ์ด์ ๊ตฌ๋ถํ ์ ์๋ค.Array.isArray()์ด์ฉ
alert(typeof {}); // object alert(typeof []); // object alert(Array.isArray({})); // false alert(Array.isArray([])); // true
sort์ ์ธ ๋๋ถ๋ถ์ ํจ์๋ฅผ ํธ์ถํ๋ ๋ฉ์๋์์
thisArg
๋ผ๋ ๋งค๊ฐ๋ณ์๋ฅผ ์ต์ ์ผ๋ก ๋ฐ์์ ์๋ค.let army = { minAge: 18, maxAge: 27, canJoin(user) { return user.age >= this.minAge && user.age < this.maxAge; }, }; let users = [{ age: 16 }, { age: 20 }, { age: 23 }, { age: 30 }]; // army.canJoin ํธ์ถ ์ ์ฐธ์ ๋ฐํํด์ฃผ๋ user๋ฅผ ์ฐพ์ let soldiers = users.filter(army.canJoin, army); alert(soldiers.length); // 2 alert(soldiers[0].age); // 20 alert(soldiers[1].age); // 23
army๋ผ๋
thisArg
๋งค๊ฐ๋ณ์๋ฅผ ํจ์์ ์ ๋ฌํ๊ณ ์์ดthisArg
๋ ํจ์์this
๊ฐ ๋๋ค.
ํจ์
์์ ์ถ๊ฐ / ์ ๊ฑฐ
push() :
๋งจ๋
์ ์์๋ฅผ์ถ๊ฐ
pop() :
๋งจ๋
์ ์์๋ฅผ์ถ์ถ
์คํ์ ์ฝ๊ฒ ๊ตฌํ ๊ฐ๋ฅ
shift() :
์ ์ผ ์
์์๋ฅผ ๊บผ๋ด์ ๊ฑฐ
ํ ํ ๋จ์์๋ ์์๋ค์ ์์ผ๋ก ๋ฐ์ด์ฃผ๋ ํจ์์ด๋ฅผ ์ด์ฉํด ํ๋ฅผ ์ฝ๊ฒ ๊ตฌํ๊ฐ๋ฅํ๋ค.
unshift() :
๋ฐฐ์ด ์
์ ์์๋ฅผ์ถ๊ฐ
splice() : ๋ฐฐ์ด์์
์์๋ฅผ ์ง์ฐ๊ณ ์ฝ์
arr.splice(start, length, element1 ...)
์์ ์ธ๋ฑ์ค๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
let arr = ['I', 'study', 'JavaScript', 'right', 'now']; arr.splice(0, 3, "Let's", 'dance'); alert(arr); // now ["Let's", "dance", "right", "now"]
slice(start,end) :
์์ ์ง์ฐ๊ธฐ
start๋ถํฐ end๊น์ง ์์๋ฅผ ๋ณต์ฌํ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํ
concat(arg1,arg2,...) : ๊ธฐ์กด ๋ฐฐ์ด์ ์์๋ฅผ ์ฌ์ฉํด
์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ค
๊ฑฐ๋ ๊ธฐ์กด ๋ฐฐ์ด์์์๋ฅผ ์ถ๊ฐ
ํ๊ธฐlet arr = [1, 2]; alert(arr.concat([3, 4])); // 1,2,3,4 alert(arr.concat([3, 4], [5, 6])); // 1,2,3,4,5,6 alert(arr.concat([3, 4], 5, 6)); // 1,2,3,4,5,6
์ธ์๋ก ๊ฐ์ฒด๊ฐ ๋์ด์ค๋ฉด ๊ฐ์ฒด๋ ๋ถํด๋์ง ์๊ณ ํต์ผ๋ก ๋ณต์ฌ๋์ด ๋ํด์ง๋ค.
let arr = [1, 2]; let arrayLike = { 0: 'something', length: 1, }; alert(arr.concat(arrayLike)); // 1,2,[object Object]
Symbol.isConcatSpreadable
์ด ์์ผ๋ฉด concat์ ๊ฐ์ฒด๋ฅผ ๋ฐฐ์ด ์ทจ๊ธlet arr = [1, 2]; let arrayLike = { 0: 'something', 1: 'else', [Symbol.isConcatSpreadable]: true, length: 2, }; alert(arr.concat(arrayLike)); // 1,2,something,else
๋ฐฐ์ด ๋ฐ๋ณต์์
forEach() : ๋ฐ๋ณต์์ ํ๊ธฐ
/*๊ธฐ๋ณธ ๊ตฌ๋ฌธ*/ arr.forEach(function (item, index, array) {}); let arr = ['Bilbo', 'Gandalf', 'Nazgul']; arr.forEach((item, index, array) => { alert(`${item} is at index ${index} in ${array}`); });
๋ฐฐ์ด ํ์
indexOf(item,from)
,lastIndexOf(item,from)
,includes(item,from)
: ๋ฌธ์์ด๊ณผ ๋์ผํ๊ฒ item์ด from๋ถํฐ ์๋์ง๊ฒ์ฌ
ํ๋ ํจ์๋ด๋ถ์ ์ผ๋ก ์์๋ฅผ ์ฐพ์๋
===
์ ์ฌ์ฉํ๋ค.includes๋
NaN
๋ ์ฒ๋ฆฌconst arr = [NaN]; alert(arr.indexOf(NaN)); // -1 (=== ๋ NaN์ ๋์ํ์ง ์์ผ๋ฏ๋ก 0์ด ์ถ๋ ฅ๋์ง ์์ต๋๋ค.) alert(arr.includes(NaN)); // true
find(function) : ๊ฐ์ฒด๋ก ์ด๋ฃจ์ด์ง ๋ฐฐ์ด์ด ์์๋ ํน์ ์กฐ๊ฑด์ ๋ถํฉํ๋ ๊ฐ์ฒด๋ฅผ ๋ฐฐ์ด๋ด์์ ์ฐพ์ ๋ ์ด์ฉ
์กฐ๊ฑด์ ๋ถํฉํ๋(true๊ฐ ๋๋) ํ๋์ ์์๋ง ์ฐพ๋๋ค
/*๊ธฐ๋ณธ ๊ตฌ๋ฌธ*/ let result = arr.find(function (item, index, array) { // true๊ฐ ๋ฐํ๋๋ฉด ๋ฐ๋ณต์ด ๋ฉ์ถ๊ณ ํด๋น ์์๋ฅผ ๋ฐํ // ์กฐ๊ฑด์ ํด๋นํ๋ ์์๊ฐ ์์ผ๋ฉด undefined๋ฅผ ๋ฐํ });
function์ผ๋ก ํ์ด ํจ์๋ฅผ ์ด์ฉ๊ฐ๋ฅํ๋ค.
let users = [ { id: 1, name: 'John' }, { id: 2, name: 'Pete' }, { id: 3, name: 'Mary' }, ]; let user = users.find((item) => item.id == 1); alert(user.name); // John
filter(function) :
์กฐ๊ฑด์ด ์ถฉ์กฑ
๋๋ ๋ชจ๋ ์์๋ฅผ ๋ด์๋ฐฐ์ด์ ๋ฐํ
/*๊ธฐ๋ณธ ๊ตฌ๋ฌธ*/ let results = arr.filter(function (item, index, array) { // ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ์์๋ results์ ์์ฐจ์ ์ผ๋ก ๋ํด์ง๋๋ค. // ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ์์๊ฐ ํ๋๋ ์์ผ๋ฉด ๋น ๋ฐฐ์ด์ด ๋ฐํ๋ฉ๋๋ค. });
find()์ ๋ง์ฐฌ๊ฐ์ง๋ก function์ผ๋ก ํ์ด ํจ์๋ฅผ ์ด์ฉ๊ฐ๋ฅํ๋ค.
let users = [ { id: 1, name: 'John' }, { id: 2, name: 'Pete' }, { id: 3, name: 'Mary' }, ]; // ์์ชฝ ์ฌ์ฉ์ ๋ ๋ช ์ ๋ฐํํฉ๋๋ค. let someUsers = users.filter((item) => item.id < 3); alert(someUsers.length); // 2
๋ฐฐ์ด ๋ณํ
map(function) : ๋ฐฐ์ด ์์
์ ์ฒด๋ฅผ ๋์
์ผ๋ก ํจ์๋ฅผ ํธ์ถํ๊ณ ๊ฒฐ๊ณผ๋ฅผ๋ฐฐ์ด๋ก ๋ฐํ
let result = arr.map(function (item, index, array) {}); let lengths = ['Bilbo', 'Gandalf', 'Nazgul'].map((item) => item.length); alert(lengths); // 5,7,6
sort(function) : ๋ฐฐ์ด์ ์ ๋ ฌ
๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐฐ์ด์ ๋ด๋ถ ์์๋ฅผ ๋ฌธ์์ด๋ก ์ทจ๊ธํ์ฌ ์ฌ์ ๋ ฌํ๋ค.
let arr = [1, 2, 15]; arr.sort(); alert(arr); // 1, 15, 2
๋ฐ๋ผ์ ์ซ์๋ก ๋น๊ตํ๋ ค๋ฉด ๋ด๋ถ์ ํจ์๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
let arr = [1, 2, 15]; arr.sort((a, b) => a - b); alert(arr); // 1, 2, 15
๋น๊ต ํจ์๊ฐ
์์
๋ฅผ ๋ฐํํ๋ ๊ฒฝ์ฐ๋ ์ฒซ๋ฒ์งธ ์ธ์๊ฐ ๋๋ฒ์งธ๋ณด๋คํฌ๋ค
์ด๊ณ์์
๋์๋ค
์ด๋ค.๋ฌธ์์ด์ ์ ๋์ฝ๋ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ธฐ ๋๋ฌธ์ ๋ฐ์๊ธฐํธ๋ฑ ์ ํํ์ง ์์ ์ ์์ด str.localeCompare(str2)๋ฅผ ์ด์ฉํ๋ฉด ์ ํํ๊ฒ ๋น๊ต๊ฐ ๊ฐ๋ฅํ๋ค.
reverse() : ๋ฐฐ์ด์ ์ญ์์ผ๋ก ์ ๋ ฌ
split(delim) :
๊ตฌ๋ถ์(delim)
์ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ ์ชผ๊ฐ์ค๋ค.let arr = 'Bilbo, Gandalf, Nazgul, Saruman'.split(', '); alert(arr); // Bilbo, Gandalf,Nazgul, Saruman let arr2 = 'Bilbo, Gandalf, Nazgul, Saruman'.split(', ', 2); alert(arr2); // Bilbo, Gandalf
delim์ผ๋ก
๋น๋ฌธ์์ด ('')
์ ์ฃผ๋ฉด ๊ธ์ ๋จ์๋ก ๋ถ๋ฆฌํ ์ ์๋ค.
join(glue) : split๊ณผ ๋ฐ๋์ ๊ธฐ๋ฅ์ผ๋ก ์ธ์๋ฅผ ์ฌ์ฉํด ๋ฐฐ์ด ์์๋ฅผ
๋ชจ๋ํฉ์น ๋ฌธ์์ด
์ ๋ง๋ค์ด์ค๋ค.let arr = ['Bilbo', 'Gandalf', 'Nazgul']; let str = arr.join(';'); alert(str); // Bilbo;Gandalf;Nazgul
reduce() : ๋ฐฐ์ด์ ๊ธฐ๋ฐ์ผ๋ก
๊ฐ ํ๋๋ฅผ ๋์ถ
ํด ๋ผ๋ ์ฌ์ฉ/*๊ธฐ๋ณธ ๊ตฌ๋ฌธ*/ let value = arr.reduce( function (accumulator, item, index, array) { // ... }, [initial] );
let arr = [1, 2, 3, 4, 5]; let result = arr.reduce((sum, current) => sum + current, 0); alert(result); // 15
Array.from
์ดํฐ๋ฌ๋ธ์ด๋ ์ ์ฌ ๋ฐฐ์ด์ ๋ฐ์ ์ง์ง Array
๋ฅผ ์์ฑํด์ฃผ๋ ํจ์
๊ฐ์ฒด
๋ ๋ฌธ์์ด
์ ๋ํ์ ์ธ ๋ด์ฅ ์ดํฐ๋ฌ๋ธ
์ดํฐ๋ฌ๋ธ(iterable) : Symbol.iterator๊ฐ ๊ตฌํ๋ ๊ฐ์ฒด
์ ์ฌ ๋ฐฐ์ด(array-like) : ์ธ๋ฑ์ค์ length ํ๋กํผํฐ๊ฐ ์์ด์ ๋ฐฐ์ด์ฒ๋ผ ๋ณด์ด๋ ๊ฐ์ฒด
let arrayLike = {
0: 'Hello',
1: 'World',
length: 2,
};
let arr = Array.from(arrayLike);
alert(arr.pop()); // World
์ด๋ฅผ ์ด์ฉํด ๋ฐฐ์ด์ ์ด๊ธฐํ๋ ํด์ค์ ์๋ค.
let arr = Array.from({ length: 5 }, () => 0);
์ด๋ ์๋์ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ค.
let arr = [];
arr.fill(0, 0, 5);
Last updated