1. Push λ©μλ ꡬννκΈ°
κ°μ
Push λ©μλλ λ°°μ΄μ λμ νλ μ΄μμ μμλ₯Ό μΆκ°νλ μ©λλ‘ μ¬μ©λ©λλ€. μ΄λ² μ₯μμλ μλ°μ€ν¬λ¦½νΈμ κΈ°λ³Έ λ°°μ΄ λ©μλμΈ Pushλ₯Ό μ§μ ꡬνν΄λ³΄λλ‘ νκ² μ΅λλ€.
μκ³ λ¦¬μ¦ λμ
- μ λ ₯λ μμλ₯Ό λ°°μ΄μ λ§μ§λ§ μΈλ±μ€ λ€μ μμΉμ μΆκ°ν©λλ€.
- λ°°μ΄μ κΈΈμ΄λ₯Ό 1 μ¦κ°μν΅λλ€.
- μλ‘μ΄ κΈΈμ΄λ₯Ό λ°νν©λλ€.
ꡬν
λ€μμ Push λ©μλμ ꡬν μμμ λλ€.
Array.prototype.pushCustom = function (...elements) {
const startLength = this.length;
let argIndex = 0;
for (let i = startLength; i < startLength + elements.length; i++) {
this[i] = elements[argIndex++];
}
return this.length;
};
μ¬μ©λ²
λ€μμ pushCustom λ©μλμ μ¬μ© μμμ λλ€.
const fruits = ['apple', 'banana'];
console.log(fruits.pushCustom('orange')); // 3
console.log(fruits); // ['apple', 'banana', 'orange']
console.log(fruits.pushCustom('grape', 'kiwi')); // 5
console.log(fruits); // ['apple', 'banana', 'orange', 'grape', 'kiwi']
μμ½
Push λ©μλλ λ°°μ΄ λμ μμλ₯Ό μΆκ°νλ λ©μλλ‘, μ μμλ₯Ό μ°Έκ³ νμ¬ μ§μ ꡬνν μ μμ΅λλ€. PushCustom λ©μλλ₯Ό μ¬μ©νλ©΄ κΈ°μ‘΄ λ°°μ΄μ μμλ₯Ό μ½κ² μΆκ°ν μ μμ΅λλ€.
2. Pop λ©μλ ꡬννκΈ°
κ°μ
Pop λ©μλλ λ°°μ΄μ λ§μ§λ§ μμλ₯Ό μ κ±°νκ³ λ°νν©λλ€. μ΄λ² μ₯μμλ μλ°μ€ν¬λ¦½νΈμ κΈ°λ³Έ λ°°μ΄ λ©μλμΈ Popμ μ§μ ꡬνν΄λ³΄λλ‘ νκ² μ΅λλ€.
μκ³ λ¦¬μ¦ λμ
- λ°°μ΄μ λ§μ§λ§ μμλ₯Ό μ κ±°ν©λλ€.
- λ°°μ΄μ κΈΈμ΄λ₯Ό 1 κ°μμν΅λλ€.
- μ κ±°λ μμλ₯Ό λ°νν©λλ€.
ꡬν
λ€μμ Pop λ©μλμ ꡬν μμμ λλ€.
Array.prototype.popCustom = function () {
if (this.length === 0) return;
const removedElement = this[this.length - 1];
delete this[this.length - 1];
this.length--;
return removedElement;
};
μ¬μ©λ²
λ€μμ popCustom λ©μλμ μ¬μ© μμμ λλ€.
const fruits = ['apple', 'banana', 'orange'];
console.log(fruits.popCustom()); // 'orange'
console.log(fruits); // ['apple', 'banana']
console.log(fruits.popCustom()); // 'banana'
console.log(fruits); // ['apple']
μμ½
Pop λ©μλλ λ°°μ΄μ λ§μ§λ§ μμλ₯Ό μ κ±°νκ³ λ°ννλ λ©μλμ λλ€. μ μμλ₯Ό μ°Έκ³ νμ¬ μ§μ PopCustom λ©μλλ₯Ό ꡬννλ©΄ λ°°μ΄μ λ§μ§λ§ μμλ₯Ό μ½κ² μ κ±°ν μ μμ΅λλ€.
3. Sort λ©μλ ꡬννκΈ°
κ°μ
Sort λ©μλλ λ°°μ΄μ μμλ₯Ό μ λ ¬ν©λλ€. μ΄λ² μ₯μμλ μλ°μ€ν¬λ¦½νΈμ κΈ°λ³Έ λ°°μ΄ λ©μλμΈ Sortλ₯Ό μ§μ ꡬνν΄λ³΄λλ‘ νκ² μ΅λλ€.
μκ³ λ¦¬μ¦ λμ
- λ°°μ΄μ 첫 λ²μ§Έ μμλΆν° λ§μ§λ§ μμκΉμ§ λ°λ³΅νλ©΄μ μΈμ ν μμλΌλ¦¬ λΉκ΅ν©λλ€.
- λΉκ΅ μ, λ μμμ κ°μ λ¬Έμμ΄λ‘ λ°κΎΌ λ€ Unicode μμλ‘ λΉκ΅ν©λλ€.
- μ λ ¬ μμμ λ§μ§ μμ κ²½μ°, μμλ₯Ό κ΅νν©λλ€.
- λͺ¨λ μμμ λν΄ λ°λ³΅νλ©° μ λ ¬μ μλ£ν©λλ€.
ꡬν
λ€μμ Sort λ©μλμ ꡬν μμμ λλ€.
Array.prototype.sortCustom = function () {
for (let i = 0; i < this.length - 1; i++) {
for (let j = i + 1; j < this.length; j++) {
if (String(this[j]) < String(this[i])) {
[this[i], this[j]] = [this[j], this[i]];
}
}
}
return this;
};
μ¬μ©λ²
λ€μμ sortCustom λ©μλμ μ¬μ© μμμ λλ€.
const numbers = [5, 1, 3, 2, 4];
console.log(numbers.sortCustom()); // [1, 2, 3, 4, 5]
const fruits = ['apple', 'banana', 'orange'];
console.log(fruits.sortCustom()); // ['apple', 'banana', 'orange']
μμ½
Sort λ©μλλ λ°°μ΄μ μ λ ¬νλ λ©μλλ‘, μ μμλ₯Ό μ°Έκ³ νμ¬ μ§μ SortCustom λ©μλλ₯Ό ꡬνν μ μμ΅λλ€. SortCustom λ©μλλ₯Ό μ¬μ©νλ©΄ λ°°μ΄μ μμλ₯Ό μ½κ² μ λ ¬ν μ μμ΅λλ€.
4. Reverse λ©μλ ꡬννκΈ°
κ°μ
Reverse λ©μλλ λ°°μ΄μ μμλ€μ λ°μ μν΅λλ€. μ΄λ² μ₯μμλ μλ°μ€ν¬λ¦½νΈμ κΈ°λ³Έ λ°°μ΄ λ©μλμΈ Reverseλ₯Ό μ§μ ꡬνν΄λ³΄λλ‘ νκ² μ΅λλ€.
μκ³ λ¦¬μ¦ λμ
- λ°°μ΄μ 첫 λ²μ§Έ μμμ λ§μ§λ§ μμλ₯Ό λ°κΏλλ€.
- λ λ²μ§Έ μμμ λμμ λ λ²μ§Έ μμλ₯Ό λ°κΏλλ€.
- μ κ³Όμ μ λ°°μ΄μ μ€κ°κΉμ§ λ°λ³΅ν©λλ€.
ꡬν
λ€μμ Reverse λ©μλμ ꡬν μμμ λλ€.
Array.prototype.reverseCustom = function () {
let i = 0;
let j = this.length - 1;
while (i < j) {
[this[i], this[j]] = [this[j], this[i]];
i++;
j--;
}
return this;
};
μ¬μ©λ²
λ€μμ reverseCustom λ©μλμ μ¬μ© μμμ λλ€.
const numbers = [1, 2, 3, 4, 5];
console.log(numbers.reverseCustom()); // [5, 4, 3, 2, 1]
const fruits = ['apple', 'banana', 'orange'];
console.log(fruits.reverseCustom()); // ['orange', 'banana', 'apple']
μμ½
Reverse λ©μλλ λ°°μ΄μ μμλ€μ λ°μ μν€λ λ©μλμ λλ€. μ μμλ₯Ό μ°Έκ³ νμ¬ μ§μ ReverseCustom λ©μλλ₯Ό ꡬννλ©΄ λ°°μ΄μ μμλ₯Ό κ°λ¨ν λ°μ μν¬ μ μμ΅λλ€.
5. λ§λ¬΄λ¦¬
μ΄λ² κΈμμλ μλ°μ€ν¬λ¦½νΈμ κΈ°λ³Έ λ°°μ΄ λ©μλ μ€ push, pop, shift, unshift, slice, splice, indexOf, includes, filter, map, reduce, forEach, some, every, sort, reverse λ©μλλ₯Ό μ§μ ꡬνν΄λ³΄λ λ°©λ²μ λν΄ μμ보μμ΅λλ€.
κ° λ©μλλ λ°°μ΄μ λ€λ£¨λ λ€μν κΈ°λ₯μ μ 곡νλ©°, μ΄λ₯Ό ꡬννκ³ μ¬μ©ν¨μΌλ‘μ¨ λ°°μ΄μ λ³΄λ€ μ μ°νκ² λ€λ£° μ μμ΅λλ€. κ° λ©μλμ λμκ³Ό μκ³ λ¦¬μ¦μ λν΄ μμΈν μμλ³΄κ³ , μμ μ½λλ₯Ό ν΅ν΄ μ€μ μ¬μ©λ²μ μ΅νμ΅λλ€.
μ΄λ¬ν λ°°μ΄ λ©μλλ€μ μλ°μ€ν¬λ¦½νΈμμ νν μ¬μ©λλ κΈ°λ₯λ€μ΄λ―λ‘, λ©μλλ€μ λμ μ리λ₯Ό μ΄ν΄νκ³ μ§μ ꡬνν΄λ³΄λ κ²μ νλ‘κ·Έλλ° μ€λ ₯ ν₯μμ λμμ΄ λ κ²μ λλ€. λν μ§μ ꡬνν¨μΌλ‘μ¨ μμ λ§μ 컀μ€ν λ©μλλ₯Ό λ§λ€μ΄ μ¬μ©ν μλ μμ΅λλ€.
μμΌλ‘λ μλ°μ€ν¬λ¦½νΈμ λ€μν κΈ°λ₯λ€μ νꡬνκ³ , μ΄λ₯Ό μ€μ μ½λμ μ μ©νμ¬ νλ‘κ·Έλλ° μ€λ ₯μ ν₯μμμΌ λκ°λ κ²μ μΆμ²ν©λλ€.
λκΈ