Array λ©μλ μ€ μμ£Όμ°μ΄λ 4κ°μ§ λ©μλμ μλμ리λ₯Ό μ 리ν΄λ³΄μλ€.
Array κ°μ²΄μμλ§ μ¬μ©κ°λ₯ν λ°λ³΅λ¬Έ
function forEach(predicate, thisArg) {
for(let i = 0; i < arr.length; i++) {
predicate(arr[i], i);
}
}
// predicate : μ½λ°±ν¨μλ₯Όλ°λλ€
// thisArg : μ½λ°±ν¨μ λ΄μμ thisλ‘ μ λ¬λ°μ μΈμλ₯Όλ°λλ€(μλ΅κ°λ₯)μλ³Έ λ°°μ΄μ μμλ₯Ό νλνλ νμν΄κ°λ©΄μ μλ‘μ΄ λ°°μ΄μ μμ±νμ¬ λ¦¬ν΄
function map(predicate, thisArg) {
let list = [];
for(let i = 0; i < arr.length; i++) {
list.push(predicate(arr[i], i));
}
return list;
}
// predicate : μ½λ°±ν¨μλ₯Όλ°λλ€
// thisArg : μ½λ°±ν¨μ λ΄μμ thisλ‘ μ λ¬λ°μ μΈμλ₯Όλ°λλ€(μλ΅κ°λ₯)μλ³Έ λ°°μ΄μμ μ£Όμ΄μ§ ν¨μμ ν μ€νΈλ₯Ό ν΅κ³Όνλ λͺ¨λ μμλ₯Ό λͺ¨μ μλ‘μ΄ λ°°μ΄μ μμ±νμ¬ λ¦¬ν΄
function filter(predicate, thisArg) {
let list = [];
for(let i = 0; i < arr.length; i++) {
if(predicate(arr[i], i)) list.push(arr[i]);
}
return list;
}
// predicate : μ½λ°±ν¨μλ₯Όλ°λλ€
// thisArg : μ½λ°±ν¨μ λ΄μμ thisλ‘ μ λ¬λ°μ μΈμλ₯Όλ°λλ€(μλ΅κ°λ₯)λ°°μ΄μ κ° μμμ λν΄ μ½λ°±ν¨μλ₯Ό μ€ννμ¬ λ¨ 1κ°μ μΆλ ₯ κ²°κ³Όλ₯Ό 리ν΄
function reduce(predicate, val) {
let result = val;
for(let i = 0; i < arr.length; i++) {
result = predicate(result, arr[i]);
}
return result;
}
// predicate : μ½λ°±ν¨μλ₯Όλ°λλ€
// val : μ΄κΈ°νκ°