[JavaScript/section 1] 08 - μΌκ³± λμμ΄
π λ¬Έμ
μλΉλ₯Ό νΌν΄ μΌκ³± λμμ΄λ€κ³Ό ν¨κ» ννλ‘κ² μννκ³ μλ λ°±μ€κ³΅μ£Όμκ² μκΈ°κ° μ°Ύμμλ€. μΌκ³Όλ₯Ό λ§μΉκ³ λμμ¨ λμμ΄κ° μΌκ³± λͺ μ΄ μλ μν λͺ μ΄μλ κ²μ΄λ€. μν λͺ μ λμμ΄λ λͺ¨λ μμ μ΄ "λ°±μ€ κ³΅μ£Όμ μΌκ³± λμμ΄"μ μ£ΌμΈκ³΅μ΄λΌκ³ μ£Όμ₯νλ€. λ°μ΄λ μνμ μ§κ΄λ ₯μ κ°μ§κ³ μλ λ°±μ€κ³΅μ£Όλ, μΌκ³± λμμ΄μ ν€μ ν©μ΄ 100μ΄ λ¨μ κΈ°μ΅ν΄ λλ€.
μν λμμ΄μ ν€κ° μ£Όμ΄μ‘μ λ, λ°±μ€κ³΅μ£Όλ₯Ό λμ μΌκ³± λμμ΄λ₯Ό μ°Ύλ λ¬Έμ μ΄λ€.
μ΄μ€ forλ¬Έμ μ¬μ©νμ¬ 2κ°μ μμ°μλ₯Ό λ½μ ν 9κ°μ μμ°μ ν©(sum)μμ λΊ κ°μ΄ 100μ΄ λμ΄μΌ νλ€.
κ°μλλ‘ splice() λ©μλλ₯Ό μ¬μ©ν΄λ λμ§λ§ filter() λ©μλλ₯Ό μ¬μ©νμ¬ ν μ€νΈλ₯Ό ν΅κ³Όνλ μμλ€λ‘ μλ‘μ΄ λ°°μ΄μ μμ±ν΄ λ°νν΄μ£Όλ λ°©μμΌλ‘λ ν μ μλ€.
π νμ΄
// splice() λ©μλλ₯Ό μ¬μ©ν μ½λ
function solution(arr) {
let answer = arr;
let sum = answer.reduce((a, b) => a + b, 0);
for (let i = 0; i < 8; i++) {
for (let j = i + 1; j < 9; j++) {
if (sum - (answer[i] + answer[j]) === 100) {
// iλ₯Ό λ¨Όμ μ κ±°νλ©΄ λ€μ κ°λ€μ΄ μμΌλ‘ λΉκ²¨μ§λ©΄μ answer[j]μ κ°μ΄ λ³κ²½ λβ
answer.splice(j, 1);
answer.splice(i, 1);
}
}
}
return answer;
}
let arr = [20, 7, 23, 19, 10, 15, 25, 8, 13];
console.log(solution(arr));
// filter() λ©μλλ₯Ό μ¬μ©ν μ½λ
function solution(arr) {
let answer;
let sum = arr.reduce((sum, v) => sum + v, 0);
for (let i = 0; i < arr.length - 1; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (sum - (arr[i] + arr[j]) === 100) {
answer = arr.filter((v, idx) => {
if (idx === i || idx === j) return false;
else return true;
});
break;
}
}
}
return answer;
}
let arr = [20, 7, 23, 19, 10, 15, 25, 8, 13];
console.log(solution(arr));
π‘ Array.prototype.splice()
λ°°μ΄μ κΈ°μ‘΄ μμλ₯Ό μμ λλ κ΅μ²΄νκ±°λ μ μμλ₯Ό μΆκ°νμ¬ λ°°μ΄μ λ΄μ©μ λ³κ²½νλ ν¨μμ΄λ€.
π μλ‘μ΄ λ°°μ΄μ μμ±ν΄ λ°ννλ κ²μ΄ μλ λ°°μ΄μ κΈ°μ‘΄ μμλ₯Ό λ³κ²½ β
const days = ['Mon', 'Wed', 'Thu', 'Fri'];
days.splice(1, 0, 'Tue');
// inserts at index 1
console.log(days);
// expected output: Array ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
1οΈβ£ λ²μ§Έ μΈμ - λ°°μ΄μ λ³κ²½μ μμν μΈλ±μ€, λ°°μ΄μ κΈΈμ΄λ³΄λ€ ν° κ°μ΄λΌλ©΄ μ€μ μμ μΈλ±μ€λ λ°°μ΄μ κΈΈμ΄λ‘ μ€μ νλ€. μμμΈ κ²½μ° λ°°μ΄μ λμμλΆν° μμλ₯Ό μΈμ΄λκ°λ€.
2οΈβ£ λ²μ§Έ μΈμ - λ°°μ΄μμ μ κ±°ν μμμ μ, μλ΅νκ±°λ κ°μ΄ (λ°°μ΄μ κΈΈμ΄ - 1οΈβ£ λ²μ§Έ μΈμ κ°) λ³΄λ€ ν¬λ©΄ 1οΈβ£ λ²μ§Έ μΈμμ κ° λΆν°μ λͺ¨λ μμλ₯Ό μ κ±°νλ€. 0 μ΄νλΌλ©΄ μ΄λ€ μμλ μ κ±°νμ§ μλλ€. μ΄ λλ μ΅μν νλμ μλ‘μ΄ μμλ₯Ό μ§μ ν΄μΌ νλ€.
3οΈβ£ λ²μ§Έ μΈμ μ΄μ - λ°°μ΄μ μΆκ°ν μμ, μ무 μμλ μ§μ νμ§ μμΌλ©΄ splice()λ μμλ₯Ό μ κ±°νκΈ°λ§ νλ€.
π λ°ν κ° - μ κ±°ν μμλ₯Ό λ΄μ λ°°μ΄, νλμ μμλ§ μ κ±°ν κ²½μ° κΈΈμ΄κ° 1μΈ λ°°μ΄μ λ°ν, μ무 κ°λ μ κ±°νμ§ μμμΌλ©΄ λΉ λ°°μ΄μ λ°ννλ€.
π μ°Έκ³ μ¬μ΄νΈ
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
Array.prototype.splice() - JavaScript | MDN
splice() λ©μλλ λ°°μ΄μ κΈ°μ‘΄ μμλ₯Ό μμ λλ κ΅μ²΄νκ±°λ μ μμλ₯Ό μΆκ°νμ¬ λ°°μ΄μ λ΄μ©μ λ³κ²½ν©λλ€.
developer.mozilla.org