ì´ë² ì¥ììë ì¸ë±ì¤ ê°ì ìí´ ì ë ¬ì´ ëë ë°ì´í° 컬ë ì
ì ëí´ ìê°í©ëë¤. ë°°ì´ê³¼ ì ì¬ ë°°ì´ êµ¬ì¡°ì¸ Array
ê°ì²´ì TypedArray
ê°ì²´ë¥¼ í¬í¨í©ëë¤.
ë°°ì´ì ì´ë¦ê³¼ ì¸ë±ì¤ë¥¼ ì¬ì©íì¬ ì°¸ì¡°íë ê°ë¤ì ììê° ìë 목ë¡ì ëë¤.
ì를 ë¤ë©´, ì«ìë¡ ë ì¬ìë²í¸ë¡ ì¸ë±ì¤ëê³ ì¬ìëª
ì ê°ì§ê³ ìë emp
ë¼ë ë°°ì´ì ê³ ë ¤í´ë³´ê² ìµëë¤. ê·¸ëì emp[0]
ì ì¬ìë²í¸ 0ë², emp[1]
ë ì¬ìë²í¸ 1ë², ì´ë° ìì´ ëê² ì£ .
JavaScriptë ëª
ìì ì¸ ë°°ì´ ë°ì´í° íìì ê°ì§ê³ ìì§ ììµëë¤. ê·¸ë¬ë 미리 ì ìë Array
ê°ì²´ì ë°°ì´ê³¼ ë©ìë를 ì¬ì©íì¬ ì´í리ì¼ì´ì
ìì ë°°ì´ë¡ ìì
í ì ììµëë¤. Array
ê°ì²´ìë í©ì¹ê¸°(joining), ìì ë¤ì§ê¸°(reversing) ê·¸ë¦¬ê³ ì ë ¬(sorting)ê³¼ ê°ì ë¤ìí ë°©ë²ì¼ë¡ ë°°ì´ì ì¡°ìíë ë©ìëê° ììµëë¤. ëí ë°°ì´ì 길ì´ë¥¼ ê²°ì íë ìì±ê³¼ ì ê· ííìê³¼ í¨ê» ì¬ì©í ì ìë ë¤ìí ìì±ì´ ììµëë¤.
ì´ ê¸ììë ë°°ì´ì ì´ì ì ë§ì¶ê² ì§ë§, ë°°ì´ê³¼ íìí ë°°ì´(typed array)ì ì ì¬í ë©ìë를 ë§ì´ ê³µì í기 ë문ì íìí ë°°ì´ìë ëì¼í ê°ë ì´ ë§ì´ ì ì©ë©ëë¤. íìí ë°°ì´ì ëí ìì¸í ë´ì©ì íìí ë°°ì´ ê°ì´ë를 참조íì¸ì.
ë°°ì´ ìì±ìëì 구문ë¤ì ëì¼í ë°°ì´ì ìì±í©ëë¤.
const arr1 = new Array(element0, element1, /* ⦠,*/ elementN);
const arr2 = Array(element0, element1, /* ⦠,*/ elementN);
const arr3 = [element0, element1, /* ⦠,*/ elementN];
element0, element1, â¦, elementN
ì ë°°ì´ì ììì ëí ê°ì 목ë¡ì
ëë¤. ì´ë¬í ê°ì´ ëª
ìëì´ ìì ê²½ì° ë°°ì´ì í´ë¹ ê°ì ë°°ì´ì ììë¡ ì´ê¸°íë©ëë¤. ë°°ì´ì length
ìì±ì ì¸ìì ìë¡ ì¤ì ë©ëë¤.
ëê´í¸ 구문ì "ë°°ì´ ë¦¬í°ë´" ëë "ë°°ì´ ì´ê¸°ì(array initializer)"ë¼ê³ í©ëë¤. ë°°ì´ ì±ì±ì ìí ë¤ë¥¸ ííë³´ë¤ ì§§ìì ì¼ë°ì ì¼ë¡ ì í¸íë ë°©ë²ì ëë¤. ìì¸í ë´ì©ì ë°°ì´ ë¦¬í°ë´ì 참조íì¸ì.
길ì´ê° 0ì´ ìëì§ë§ ììê° ìë ë°°ì´ì ë§ë¤ë ¤ë©´ ë¤ì ì¤ íë를 ì¬ì©í ì ììµëë¤.
// ì´...
const arr1 = new Array(arrayLength);
// ...ê²°ê³¼ë ìì ê°ìµëë¤
const arr2 = Array(arrayLength);
// ì´ê² ìì ëì¼í©ëë¤
const arr3 = [];
arr3.length = arrayLength;
ì°¸ê³ : ìì ìì ì½ëìì, arrayLength
ë ë°ëì Number
ì¬ì¼ í©ëë¤. ê·¸ë ì§ ìì¼ë©´, íëì ìì(주ì´ì§ ê°)ì ê°ì§ë ë°°ì´ì´ ìì±ë©ëë¤. arr.length
를 í¸ì¶íë©´ arrayLength
ê° ë°íì´ ëì§ë§ í´ë¹ ë°°ì´ì ì¤ì ë¡ ìë¬´ë° ìì를 ê°ì§ê³ ìì§ ììµëë¤. for...in
ë°ë³µë¬¸ì ì¤ííë©´ í´ë¹ ë°°ì´ì ìë¬´ë° ìì를 ë°ííì§ ììµëë¤.
ì¶ê°ë¡ ìëì ìì ìì ë³¼ ì ìë¯ì´, ìë¡ì´ ì ìë í¹ì ì´ë¯¸ ì¡´ì¬íë ê°ì²´ ë³ìì ìì±ì¼ë¡ ë°°ì´ì í ë¹í ì ììµëë¤.
const obj = {};
// â¦
obj.prop = [element0, element1, /* ⦠,*/ elementN];
// OR
const obj = { prop: [element0, element1, /* ⦠,*/ elementN] };
ê°ì´ ì«ì
ì¸ íëì ììë§ì ê°ì§ë ë°°ì´ì ìì±íê³ ì í ê²½ì°, ë°ëì ëê´í¸ 문ë²ì ì¬ì©í´ì¼ í©ëë¤. íëì ì«ì
ê°ì Array()
ìì±ììê² ì ë¬í ê²½ì°, ê·¸ ì«ì ê°ì í´ë¹ ë°°ì´ì ììê° ìëë¼ arrayLength
ë¡ í´ìë©ëë¤.
// ìë ì½ëë ì«ì 42ë¼ë íëì ìì를 ê°ì§ ë°°ì´ì ìì±í©ëë¤.
const arr = [42];
// ìë ì½ëë arr.lengthê° 42ì´ë©´ì ììê° ìë ë°°ì´ì ìì±í©ëë¤.
const arr = Array(42);
// ìëë ëì¼í©ëë¤.
const arr = [];
arr.length = 42;
N
ì ë¶ì ë¶ë¶ì´ 0ì´ ìë ì ìê° ìë ê²½ì° Array(N)
ì í¸ì¶íë©´ RangeError
ê° ë°ìí©ëë¤. ë¤ì ìì ë ì´ ëìì ì¤ëª
í©ëë¤.
const arr = Array(9.3); // RangeError: Invalid array length
ë§ì½ ììì ë°ì´í° ì íì ë¨ì¼ ìì를 ê°ì§ë ë°°ì´ì ìì±íê³ ì í ê²½ì°, ë°°ì´ í기ë²ì ì¬ì©íë ê²ì´ ìì í©ëë¤. í¹ì ë¹ ë°°ì´ì 먼ì ì ì¸í í ììì ë°ì´í° ê°ì í´ë¹ ë°°ì´ì ì¶ê°íë ê²ë ë°©ë²ì´ ë©ëë¤.
ììê° íëì¸ ë°°ì´ì ë§ë¤ê¸° ìí´ Array.of
ì ì ë©ìë를 ì¬ì©í ì ììµëë¤.
const wisenArray = Array.of(9.3); // wisenArrayë ì¤ì§ íëì ìì 9.3ë§ì ê°ì§ê³ ììµëë¤.
ë°°ì´ ììì 참조
ììë ìì±ì´ë¯ë¡ ìì± ì ê·¼ì를 ì¬ì©íì¬ ììì ì ê·¼í ì ììµëë¤. ë¤ìê³¼ ê°ì ë°°ì´ì ì ìíë¤ê³ ê°ì í´ ë³´ê² ìµëë¤.
const myArray = ["Wind", "Rain", "Fire"];
ë°°ì´ì 첫ë²ì§¸ ììë myArray[0]
ë¡ ì°¸ì¡°í ì ìê³ ëë²ì§¸ ììë myArray[1]
ë¡ ì°¸ì¡°í ì ììµëë¤. ë°°ì´ì ì¸ë±ì¤ ê°ì 0ë¶í° ììí©ëë¤.
ë°°ì´ ì±ì°ê¸°ì°¸ê³ : ìì± ì ê·¼ì를 ê°ì²´ì²ë¼ ë°°ì´ì ë¤ë¥¸ ìì±ì ì ê·¼í기 ìí´ ì¬ì©í ìë ììµëë¤.
const arr = ["one", "two", "three"]; arr[2]; // three arr["length"]; // 3
ììì ê°ì í ë¹í¨ì¼ë¡ì ë°°ì´ì ì±ì¸ ì ììµëë¤. ìëë ê·¸ ìì ëë¤.
const emp = [];
emp[0] = "Casey Jones";
emp[1] = "Phil Lesh";
emp[2] = "August West";
ì°¸ê³ : ì ì½ëìì ë°°ì´ ì°ì°ìì ì ìê° ìë ê°ì ì ê³µíë©´ ë°°ì´ ìì ëì ë°°ì´ì ëíë´ë ê°ì²´ì ìì±ì´ ìì±ë©ëë¤.
const arr = [];
arr[3.4] = "Oranges";
console.log(arr.length); // 0
console.log(Object.hasOwn(arr, 3.4)); // true
ë°°ì´ ìì± ì ë°°ì´ì ì±ì¸ ìë ììµëë¤.
const myArray = new Array("Hello", myVar, 3.14159);
// OR
const myArray = ["Mango", "Apple", "Orange"];
길ì´(length)ì ëí ì´í´
ì¤ì 구íìì JavaScriptì ë°°ì´ì ë°°ì´ì í¬í¨ë ììë¤ì ë°°ì´ì ì¸ë±ì¤ ê°ì ìì± ì´ë¦ì¼ë¡ ì¬ì©íì¬ íì¤ ê°ì²´ì ìì±ì²ë¼ ì ì¥í©ëë¤.
length
ìì±ì ì¢ í¹ë³í©ëë¤. ë°°ì´ì 길ì´ë íì ë§ì§ë§ ììì ì¸ë±ì¤ì 1ì ëí ê°ì ë°íí©ëë¤. ë¤ì ìì ìì 'Dusty'
ë ì¸ë±ì¤ 30
ë² ì§¸ì ìì¹í기 ë문ì cats.length
ë 30 + 1
ì ë°íí©ëë¤.
기ìµíì¤ ê²ì JavaScript ë°°ì´ì ì¸ë±ì¤ë íì 1
ë¶í°ê° ìë 0
ë¶í° ììíë¤ë ì ì
ëë¤. ì´ë ìë ìì ì²ë¼ ë°°ì´ì length
ìì±ì ë°°ì´ì ì ì¥ë ê°ì¥ í° ì¸ë±ì¤ë³´ë¤ 1ë§í¼ í° ê°ì´ ëë¤ë ë»ì
ëë¤.
const cats = [];
cats[30] = ["Dusty"];
console.log(cats.length); // 31
length
ìì±ì ê°ì í ë¹í ì ììµëë¤.
ì ì¥ë í목 ìë³´ë¤ ìì ê°ì ì°ë©´ ë°°ì´ì´ ì립ëë¤. 0
ì ì°ë©´ ë°°ì´ì´ ìì í ë¹ìì§ëë¤.
const cats = ["Dusty", "Misty", "Twiggy"];
console.log(cats.length); // 3
cats.length = 2;
console.log(cats); // [ 'Dusty', 'Misty' ] - Twiggy ê°ì´ ì ê±°ëììµëë¤
cats.length = 0;
console.log(cats); // []; cats ë°°ì´ì ë¹ììµëë¤
cats.length = 3;
console.log(cats); // [ <3 empty items> ]
ë°°ì´ì ìì를 ë°ë³µì²ë¦¬í기
ë°°ì´ì ì¬ì©í ì¼ë°ì ì¸ ì°ì°ì ë°°ì´ì ê°ì ë°ë³µíì¬ ê° ê°ì ì´ë¤ ë°©ìì¼ë¡ ì²ë¦¬íë ê²ì ëë¤. ê°ì¥ ê°ë¨í ë°©ë²ì ìëì ê°ìµëë¤.
const colors = ["red", "green", "blue"];
for (let i = 0; i < colors.length; i++) {
console.log(colors[i]);
}
ë°°ì´ì ì´ë¤ ììë ë¶ë¦¬ì¸ 컨í
ì¤í¸ìì false
ë¡ íê°ëì§ ìëë¤ë ê²ì ìê³ ìë¤ë©´ (ì를 ë¤ì´ ë°°ì´ì ììê° DOMë
¸ëë¡ë§ 구ì±ë ê²½ì°) ë³´ë¤ í¨ì¨ì ì¸ ì½ë ê´ì©êµ¬ë¥¼ ì¬ì©í ì ììµëë¤.
const divs = document.getElementsByTagName("div");
for (let i = 0, div; (div = divs[i]); i++) {
/* Process div in some way */
}
ì´ë ê² íë©´ ë°°ì´ì 길ì´ë¥¼ íì¸íë ì¤ë²í¤ë를 í¼í ì ìì¼ë©°, 루íê° ë°ë³µë ëë§ë¤ div
ë³ìê° íì¬ í목ì ì¬í ë¹ëì´ í¸ìì±ì ëì¼ ì ììµëë¤.
forEach()
ë©ìëë ë°°ì´ì ë°ë³µíë ë ë¤ë¥¸ ë°©ë²ì ì ê³µí©ëë¤.
const colors = ["red", "green", "blue"];
colors.forEach((color) => console.log(color));
// red
// green
// blue
forEach
ì ì ë¬ë í¨ìë ë°°ì´ì 모ë í목ì ëí´ í ë²ì© ì¤íëë©°, ë°°ì´ íëª©ì´ í¨ìì ì¸ìë¡ ì ë¬ë©ëë¤. í ë¹ëì§ ìì ê°ì forEach
ë°ë³µë¬¸ìì ë°ë³µëì§ ììµëë¤.
ë°°ì´ì ì ìí ë ìëµë ììë forEach
ë°ë³µë¬¸ì¼ë¡ ë°°ì´ì ìì를 ìíí ë ì²ë¦¬ ëìì´ ëì§ ìë ê²ì ì ìíì기 ë°ëëë¤. íì§ë§ undefined
ì´ ììì ìëì¼ë¡ í ë¹ë ê²½ì° ëª©ë¡ì ëì´ë©ëë¤.
const sparseArray = ["first", "second", , "fourth"];
sparseArray.forEach((element) => {
console.log(element);
});
// Logs:
// first
// second
// fourth
if (sparseArray[2] === undefined) {
console.log("sparseArray[2] is undefined"); // true
}
const nonsparseArray = ["first", "second", undefined, "fourth"];
nonsparseArray.forEach((element) => {
console.log(element);
});
// Logs:
// first
// second
// undefined
// fourth
JavaScript ê°ì²´ì ììë íì¤ ê°ì²´ ìì±ì¼ë¡ ì ì¥ë기 ë문ì for...in
ë°ë³µë¬¸ì ì¬ì©íì¬ JavaScript ë°°ì´ì ë°ë³µíë ê²ì ë°ëì§íì§ ììµëë¤. ìëë©´ ì¼ë° ììë¤ê³¼ ê·¸ë¦¬ê³ ëª¨ë ì´ê±°í ì ìë ìì±ë¤ì´ ëì´ë기 ë문ì
ëë¤.
Array
ê°ì²´ë ë¤ìê³¼ ê°ì ë©ìëë¤ì ê°ì§ê³ ììµëë¤.
concat()
ë©ìëë ë ê°ì ë°°ì´ì í©ì³ ìë¡ì´ ë°°ì´ì ë°íí©ëë¤.
let myArray = ["1", "2", "3"];
myArray = myArray.concat("a", "b", "c");
// myArray is now ["1", "2", "3", "a", "b", "c"]
join()
ë©ìëë ë°°ì´ì 모ë ìì를 íëì 문ìì´ë¡ ì°ê²°íì¬ ë°íí©ëë¤.
const myArray = ["Wind", "Rain", "Fire"];
const list = myArray.join(" - "); // list is "Wind - Rain - Fire"
push()
ë©ìëë íë í¹ì ê·¸ ì´ìì ìì를 ë°°ì´ì ë§ì§ë§ì ì¶ê°íê³ ì¶ê°ë ìì를 í¬í¨í length
를 ë°íí©ëë¤.
const myArray = ["1", "2"];
myArray.push("3"); // myArray is now ["1", "2", "3"]
pop()
ë©ìëë ë°°ì´ì ë§ì§ë§ ìì를 ì ê±°íê³ ê·¸ ì ê±°ë ìì를 ë°íí©ëë¤.
const myArray = ["1", "2", "3"];
const last = myArray.pop();
// myArray is now ["1", "2"], last = "3"
shift()
ë©ìëë ë°°ì´ì 첫ë²ì§¸ ìì를 ì ê±°íê³ ê·¸ ì ê±°ë ìì를 ë°íí©ëë¤.
const myArray = ["1", "2", "3"];
const first = myArray.shift();
// myArray is now ["2", "3"], first is "1"
unshift()
ë©ìëë íë í¹ì ê·¸ ì´ìì ìì를 ë°°ì´ì ì쪽ì ì¶ê°íê³ ì¶ê°í ìì를 í¬í¨í 길ì´ë¥¼ ë°íí©ëë¤.
const myArray = ["1", "2", "3"];
myArray.unshift("4", "5");
// myArray becomes ["4", "5", "1", "2", "3"]
slice()
ë©ìëë ë°°ì´ì í¹ì ë¶ë¶ì ì¶ì¶íì¬ ê·¸ ì¶ì¶ë ë¶ë¶ì í¬í¨íë ìë¡ì´ ë°°ì´ì ë°íí©ëë¤.
let myArray = ["a", "b", "c", "d", "e"];
myArray = myArray.slice(1, 4); // [ "b", "c", "d"]
// ì¸ë±ì¤ 1ìì ììíì¬ ì¸ë±ì¤ 3ê¹ì§ì 모ë ìì
at()
ë©ìëë ë°°ì´ì ì§ì ë ì¸ë±ì¤ì ìë ìì를 ë°ííê±°ë ì¸ë±ì¤ê° ë²ì를 ë²ì´ë ê²½ì° undefined
ì ë°íí©ëë¤. í¹í ë°°ì´ì ëìì ììì ì ê·¼íë ìì ì¸ë±ì¤ì ì¬ì©ë©ëë¤.
const myArray = ["a", "b", "c", "d", "e"];
myArray.at(-2); // "d", the second-last element of myArray
The splice()
ë©ìëë ë°°ì´ìì ìì를 ì ê±°í í (ì íì ì¼ë¡) ëì²´í©ëë¤. ì´ ë©ìëë ë°°ì´ìì ì ê±°ë í목ì ë°íí©ëë¤.
const myArray = ["1", "2", "3", "4", "5"];
myArray.splice(1, 3, "a", "b", "c", "d");
// myArray ë ì´ì ["1", "a", "b", "c", "d", "5"] ê° ë©ëë¤.
// ì´ ì½ëë 첫 ë²ì§¸ ì¸ë±ì¤("2"ê°ì´ ìë ê³³)ìì ììíì¬
// 3ê°ì ìì를 ìì í í ê·¸ ì리ì ì°ìë 모ë ìì를 모ë ì½ì
í©ëë¤.
reverse()
ë©ìëë ë°°ì´ì ìì를 첫 ë²ì§¸ ë°°ì´ ììê° ë§ì§ë§ì´ ëê³ ë§ì§ë§ ììê° ì²« ë²ì§¸ê° ëë ìì¼ë¡ ë°°ì´ì ìì를 ë°ê¿ëë¤. ë°°ì´ì ëí 참조를 ë°íí©ëë¤.
const myArray = ["1", "2", "3"];
myArray.reverse();
// transposes the array so that myArray = ["3", "2", "1"]
flat()
ë©ìëë ì§ì ë ê¹ì´ê¹ì§ ì¬ê·ì ì¼ë¡ ì°ê²°ë 모ë íì ë°°ì´ ììê° í¬í¨ë ì ë°°ì´ì ë°íí©ëë¤.
let myArray = [1, 2, [3, 4]];
myArray = myArray.flat();
// myArray is now [1, 2, 3, 4], since the [3, 4] subarray is flattened
sort()
ë©ìëë ë°°ì´ì ìì를 ìë¡ì´ ë°°ì´ì´ ìë 주ì´ì§ ë°°ì´ ë´ìì ì ë ¬íê³ ë°°ì´ì ëí 참조를 ë°íí©ëë¤.
const myArray = ["Wind", "Rain", "Fire"];
myArray.sort();
// ë°°ì´ì ì ë ¬íê² ëì´ì ì´ì myArray = ["Fire", "Rain", "Wind"]
sort()
ë©ìëë ì´ë»ê² í´ë¹ ë°°ì´ì ìì를 ì ë ¬í ì§ ê²°ì íë ì½ë°± í¨ì를 ì¸ìë¡ ë°ì ì ììµëë¤. ì½ë°± í¨ìë ë°°ì´ìì ì¨ ë ê°ì ë ê°ì ì¸ìë¡ ì¬ì©íì¬ í¸ì¶ë©ëë¤. ì´ í¨ìë ì´ ë ê°ì ë¹êµíì¬ ë ê°ì ìì를 ëíë´ë ìì, ìì ëë 0ì ë°íí©ëë¤. ì를 ë¤ì´ ë¤ìì 문ìì´ì ë§ì§ë§ 문ì를 기ì¤ì¼ë¡ ë°°ì´ì ì ë ¬í©ëë¤.
const sortFn = (a, b) => {
if (a[a.length - 1] < b[b.length - 1]) {
return -1; // ìì => a < b, a ë b ìì¼ë¡ ìµëë¤.
} else if (a[a.length - 1] > b[b.length - 1]) {
return 1; // ìì => a > b, a ë b ë¤ì ìµëë¤.
}
return 0; // 0 => a = b, a ì b ë ìë ìì를 ì ì§í©ëë¤.
};
myArray.sort(sortFn);
// sorts the array so that myArray = ["Wind","Fire","Rain"]
a
ê° b
ë³´ë¤ ìì¼ë©´, -1
(ëë ììì ìì)ì ë°íí©ëë¤.a
ê° b
ë³´ë¤ í¬ë©´, 1
(ëë ììì ìì)ì ë°íí©ëë¤.a
ì b
ê° ëë±íë¤ ê°ì£¼ëë©´ 0
ì ë°íí©ëë¤.indexOf()
ë©ìëë ë°°ì´ìì searchElement
를 ì°¾ìì 첫 ë²ì§¸ ì¼ì¹íë ììì ì¸ë±ì¤ë¥¼ ë°íí©ëë¤.
const a = ["a", "b", "a", "b", "a"];
console.log(a.indexOf("b")); // 1
// ì´ì ë¤ì ìëí©ëë¤. ë§ì§ë§ ì¼ì¹í ììë¶í° ë¤ì ììí©ëë¤.
console.log(a.indexOf("b", 2)); // 3
console.log(a.indexOf("z")); // -1, ìëíë©´ 'z'를 ì°¾ì§ ëª»íìµëë¤.
lastIndexOf()
ë©ìëë indexOf
ë©ìëì ì ì¬íê² ìëíì§ë§ ë°°ì´ì ë¤ìª½ììë¶í° ìì를 ì°¾ìµëë¤.
const a = ["a", "b", "c", "d", "a", "b"];
console.log(a.lastIndexOf("b")); // 5
// ì´ì ë¤ì ìëí©ëë¤. ë§ì§ë§ ì¼ì¹í ììë¶í° ë¤ì ììí©ëë¤.
console.log(a.lastIndexOf("b", 4)); // 1
console.log(a.lastIndexOf("z")); // -1
forEach()
ë©ìëë ë°°ì´ì 모ë ììì ëí´ ë°ë³µì ì¼ë¡ 주ì´ì§ callback
í¨ì를 ì¤ííë©° undefined
를 ë°íí©ëë¤.
const a = ["a", "b", "c"];
a.forEach((element) => {
console.log(element);
});
// Logs:
// a
// b
// c
ì½ë°±ì ë°ë forEach
ë©ìë(ê·¸ë¦¬ê³ ìëì ë¤ë¥¸ ë©ìë)ë ì´ë¤ ë°©ìì¼ë¡ë ì ì²´ ë°°ì´ì ë°ë³µí기 ë문ì ë°ë³µì ì¸(iterative) ë©ìëë¡ ìë ¤ì ¸ ììµëë¤. ê° ë©ìëë thisArg
ë¼ë ì íì ë ë²ì§¸ ì¸ì를 ë°ìµëë¤. ì´ ì¸ìê° ì ê³µëë©´ thisArg
ë ì½ë°± í¨ì ìì ìë this
í¤ìëì ê°ì´ ë©ëë¤. ì ê³µëì§ ìì¼ë©´, í¨ìê° ëª
ìì ê°ì²´ 컨í
ì¤í¸ ì¸ë¶ìì í¸ì¶ëë ë¤ë¥¸ ê²½ì°ì ë§ì°¬ê°ì§ë¡, this
ë í¨ìê° ì격í 모ëê° ìë ê²½ì° ì ì ê°ì²´(window
, globalThis
ë±)ì 참조íê² ë©ëë¤. ì격í 모ëì¼ ê²½ì° undefined
ì 참조í©ëë¤.
ì°¸ê³ : ììì ìê°í sort()
ë©ìëë ì½ë°± í¨ìê° ì¤ì§ ë¹êµìë§ ì¬ì©ëë©° ìì ììì ë°ë¼ í¹ì ììë¡ í¸ì¶íì§ ìì ì ì기 ë문ì ë°ë³µ ë©ìëê° ìëëë¤. sort()
ë thisArg
매ê°ë³ìë ë°ì§ ììµëë¤.
map()
ë©ìëë ë°°ì´ì 모ë ììì ëí´ callback
í¨ì를 ì¤ííê³ ì´ ê²°ê³¼ë¥¼ ìë¡ì´ ë°°ì´ì ë´ì ë°íí©ëë¤.
const a1 = ["a", "b", "c"];
const a2 = a1.map((item) => item.toUpperCase());
console.log(a2); // ['A', 'B', 'C']
flatMap()
ë©ìëë map()
ì ì´ì´ ê¹ì´ 1ì flat()
ì ì¤íí©ëë¤.
const a1 = ["a", "b", "c"];
const a2 = a1.flatMap((item) => [item.toUpperCase(), item.toLowerCase()]);
console.log(a2); // ['A', 'a', 'B', 'b', 'C', 'c']
filter()
ë©ìëë callback
í¨ìê° true
를 ë°ííë ìì를 ìë¡ì´ ë°°ì´ì ë´ì ë°íí©ëë¤.
const a1 = ["a", 10, "b", 20, "c", 30];
const a2 = a1.filter((item) => typeof item === "number");
console.log(a2); // [10, 20, 30]
find()
ë©ìëë callback
ì´ true
를 ë°ííë 첫 ë²ì§¸ í목ì ë°íí©ëë¤.
const a1 = ["a", 10, "b", 20, "c", 30];
const i = a1.find((item) => typeof item === "number");
console.log(i); // 10
findLast()
ë©ìëë callback
ì´ true
를 ë°ííë ë§ì§ë§ í목ì ë°íí©ëë¤.
const a1 = ["a", 10, "b", 20, "c", 30];
const i = a1.findLast((item) => typeof item === "number");
console.log(i); // 30
findIndex()
ë©ìëë callback
ì´ true
를 ë°ííë 첫 ë²ì§¸ í목ì ì¸ë±ì¤ë¥¼ ë°íí©ëë¤.
const a1 = ["a", 10, "b", 20, "c", 30];
const i = a1.findIndex((item) => typeof item === "number");
console.log(i); // 1
findLastIndex()
ë©ìëë callback
ì´ true
를 ë°ííë ë§ì§ë§ í목ì ì¸ë±ì¤ë¥¼ ë°íí©ëë¤.
const a1 = ["a", 10, "b", 20, "c", 30];
const i = a1.findLastIndex((item) => typeof item === "number");
console.log(i); // 5
every()
ë©ìëë callback
ì´ ë°°ì´ì 모ë í목ì ëí´ true
를 ë°ííë©´ true
를 ë°íí©ëë¤.
function isNumber(value) {
return typeof value === "number";
}
const a1 = [1, 2, 3];
console.log(a1.every(isNumber)); // true
const a2 = [1, "2", 3];
console.log(a2.every(isNumber)); // false
some()
ë©ìëë ë°°ì´ìì ì ì´ë callback
ì´ true
를 ì ì´ë íë²ì´ë¼ë ë°ííë©´ true
를 ë°íí©ëë¤.
function isNumber(value) {
return typeof value === "number";
}
const a1 = [1, 2, 3];
console.log(a1.some(isNumber)); // true
const a2 = [1, "2", 3];
console.log(a2.some(isNumber)); // true
const a3 = ["1", "2", "3"];
console.log(a3.some(isNumber)); // false
reduce()
ë©ìëë ë°°ì´ ë´ì ìì를 íëì ììë¡ ì¤ì´ê¸° ìí´ callback(accumulator, currentValue, currentIndex, array)
ì ë°°ì´ì ê° ê°ë§ë¤ ì ì©í©ëë¤. reduce
í¨ìë callback
í¨ìê° ë°ííë ë§ì§ë§ ê°ì ë°íí©ëë¤.
initialValue
ì´ ëª
ìëë©´ callback
ì 첫 ë²ì§¸ 매ê°ë³ì ê°ì¼ë¡ initialValue
ì, ë ë²ì§¸ 매ê°ë³ì ê°ì¼ë¡ ë°°ì´ì 첫 ë²ì§¸ í목ì ê°ì ì¬ì©íì¬ í¸ì¶ë©ëë¤.
initialValue
ì´ ëª
ìëì§ ìì ê²½ì°, callback
ì ì²ì ë 매ê°ë³ì ê°ì ë°°ì´ì 첫 ë²ì§¸ì ë ë²ì§¸ ììê° ë©ëë¤. ì´í í¸ì¶í ëë§ë¤ 첫 ë²ì§¸ 매ê°ë³ì ê°ì ì´ì í¸ì¶ìì callback
ì´ ë°íë ê°ì´ ëë©°, ë ë²ì§¸ 매ê°ë³ì ê°ì ë°°ì´ì ë¤ì ê°ì´ ë©ëë¤.
callback
ì´ ì²ë¦¬ ì¤ì¸ í목ì ì¸ë±ì¤ì ì ê·¼íê±°ë ì ì²´ ë°°ì´ì ì ê·¼í´ì¼ íë ê²½ì° ì íì ì¸ ë§¤ê°ë³ì를 ì¬ì©í ì ììµëë¤.
const a = [10, 20, 30];
const total = a.reduce(
(accumulator, currentValue) => accumulator + currentValue,
0,
);
console.log(total); // 60
reduceRight()
ë©ìëë reduce()
ì²ë¼ ëìíì§ë§ ë§ì§ë§ ììë¶í° ììí©ëë¤.
reduce
ì reduceRight
ë ë°ë³µ ë°°ì´ ë©ìë ì¤ ê°ì¥ ëª
ííì§ ìì ë©ìëì
ëë¤. ìíì¤ë¥¼ ë¨ì¼ ê°ì¼ë¡ ì¤ì´ê¸° ìí´ ë ê°ì ì¬ê·ì ì¼ë¡ ê²°í©íë ìê³ ë¦¬ì¦ì ì¬ì©í´ì¼ í©ëë¤.
ë°°ì´ìë undefined
ì´ë¼ë ê°ì¼ë¡ ì±ìì§ ì¬ë¡¯ê³¼ë ë¤ë¥¸ "ë¹ ì¬ë¡¯"ì´ í¬í¨ë ì ììµëë¤. ë¹ ì¬ë¡¯ì ë¤ì ì¤ í ê°ì§ ë°©ë²ì¼ë¡ ë§ë¤ ì ììµëë¤:
// ë°°ì´ ìì±ì
const a = Array(5); // [ <5 empty items> ]
// ë°°ì´ ë¦¬í°ë´ì ì°ìë ì¼í
const b = [1, 2, , , 5]; // [ 1, 2, <2 empty items>, 5 ]
// array.lengthë³´ë¤ í° ì¸ë±ì¤ì ì¬ë¡¯ì ì§ì ì ì¼ë¡ ê° ì¤ì í기
const c = [1, 2];
c[4] = 5; // [ 1, 2, <2 empty items>, 5 ]
// .length를 ì§ì ì¤ì íì¬ ë°°ì´ ë리기
const d = [1, 2];
d.length = 5; // [ 1, 2, <3 empty items> ]
// ìì ìì
const e = [1, 2, 3, 4, 5];
delete e[2]; // [ 1, 2, <1 empty item>, 4, 5 ]
ì¼ë¶ ìì ììë ë¹ ì¬ë¡¯ì´ 'undefined'ì¼ë¡ ì±ìì§ ê²ì²ë¼ ëìí©ëë¤.
const arr = [1, 2, , , 5]; // í¬ì ë°°ì´ ìì±
// ì¸ë±ì¤ë¥¼ ì¬ì©í ì ê·¼
console.log(arr[2]); // undefined
// For...of
for (const i of arr) {
console.log(i);
}
// Logs: 1 2 undefined undefined 5
// ì ê°ì°ì°
const another = [...arr]; // "another" is [ 1, 2, undefined, undefined, 5 ]
ê·¸ë¬ë ë¤ë¥¸ ê²½ì°(í¹í ëë¤ì ë°°ì´ ë°ë³µ ë©ìë)ììë ë¹ ì¬ë¡¯ì ê±´ëëëë¤.
const mapped = arr.map((i) => i + 1); // [ 2, 3, <2 empty items>, 6 ]
arr.forEach((i) => console.log(i)); // 1 2 5
const filtered = arr.filter(() => true); // [ 1, 2, 5 ]
const hasFalsy = arr.some((k) => !k); // false
// ìì± ì´ê±°
const keys = Object.keys(arr); // [ '0', '1', '4' ]
for (const key in arr) {
console.log(key);
}
// Logs: '0' '1' '4'
// ì ê° ì°ì°ì ê²°ê³¼ ê°ì´ ê°ì²´ì¼ ê²½ì° ë°°ì´ì ë°ë³µìê° ìë ìì± ì´ê±°ë¥¼ ì¬ì©í©ëë¤
const objectSpread = { ...arr }; // { '0': 1, '1': 2, '4': 5 }
ë°°ì´ ë©ìëê° í¬ì ë°°ì´ìì ìëíë ë°©ìì ëí ì ì²´ 목ë¡ì Array
참조 íì´ì§ë¥¼ 참조íì¸ì.
ë°°ì´ì ì¤ì²©ë ì ììµëë¤. ì¦, íëì ë°°ì´ì ë ë¤ë¥¸ ë°°ì´ì ììë¡ í¬í¨í ì ììµëë¤. JavaScript ë°°ì´ì ì´ë° í¹ì±ì ì¬ì©íì¬, ë¤ì°¨ì ë°°ì´ì ìì±í ì ììµëë¤.
ìëì ìì ë 2ì°¨ì ë°°ì´ì ìì±íë ìì ì ëë¤.
const a = new Array(4);
for (let i = 0; i < 4; i++) {
a[i] = new Array(4);
for (let j = 0; j < 4; j++) {
a[i][j] = `[${i}, ${j}]`;
}
}
ì´ ìì ë ë¤ìê³¼ ê°ì ì´ì í¬í¨íë ë°°ì´ì ìì±í©ëë¤.
Row 0: [0, 0] [0, 1] [0, 2] [0, 3] Row 1: [1, 0] [1, 1] [1, 2] [1, 3] Row 2: [2, 0] [2, 1] [2, 2] [2, 3] Row 3: [3, 0] [3, 1] [3, 2] [3, 3]ë¤ë¥¸ ìì±ì ë´ê¸° ìí ë°°ì´ ì¬ì©
ê´ë ¨ ì 보를 ì ì¥í기 ìí´ ë°°ì´ì ê°ì²´ì²ë¼ ì¬ì©í ìë ììµëë¤.
const arr = [1, 2, 3];
arr.property = "value";
console.log(arr.property); // "value"
ì를 ë¤ì´, ì ê·ìê³¼ 문ìì´ì´ ì¼ì¹íë ê²°ê³¼ë¡ ë°°ì´ì´ ìì±ëë©´ ë°°ì´ì ì¼ì¹ì ëí ì 보를 ì ê³µíë ìì± ë° ìì를 ë°íí©ëë¤. ë°°ì´ì ë°í ê°ì RegExp.prototype.exec()
, String.prototype.match()
ë° String.prototype.split()
ì
ëë¤. ì ê· ííìê³¼ í¨ê» ë°°ì´ì ì¬ì©íë ë°©ë²ì ëí ìì¸í ë´ì©ì ì ê· ííìì 참조íììì¤.
document.getElementsByTagName()
ìì ë°íëë NodeList
ëë í¨ì 본문 ë´ìì ì¬ì©í ì ìë arguments
ê°ì²´ì ê°ì ì¼ë¶ JavaScript ê°ì²´ë íë©´ì ì¼ë¡ë ë°°ì´ì²ë¼ ë³´ì´ê³ ëìíì§ë§ 모ë ë©ìë를 ê³µì íì§ë ììµëë¤. arguments
ê°ì²´ë length
ìì±ì ì ê³µíì§ë§ forEach()
ì ê°ì ë°°ì´ ë©ìëë 구ííì§ ììµëë¤.
ë°°ì´ ë©ìëë ì ì¬ ë°°ì´ ê°ì²´ìì ì§ì ì ì¼ë¡ í¸ì¶í ì ììµëë¤.
function printArguments() {
arguments.forEach((item) => {
console.log(item);
}); // TypeError: arguments.forEach is not a function
}
íì§ë§ Function.prototype.call()
ì ì¬ì©íì¬ ê°ì ì ì¼ë¡ í¸ì¶í ì ììµëë¤.
function printArguments() {
Array.prototype.forEach.call(arguments, (item) => {
console.log(item);
});
}
ë°°ì´ íë¡í íì ë©ìëë ë°°ì´ê³¼ ì ì¬í ë°©ìì¼ë¡ 문ìì ëí ìì°¨ì ì ê·¼ì ì ê³µíë¯ë¡ 문ìì´ìë ì¬ì©í ì ììµëë¤.
Array.prototype.forEach.call("a string", (chr) => {
console.log(chr);
});
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4