Skip to content

Instantly share code, notes, and snippets.

@yangtaeho
Last active March 30, 2021 15:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yangtaeho/d4532107870d5e7976ecd3ffff962b21 to your computer and use it in GitHub Desktop.
Save yangtaeho/d4532107870d5e7976ecd3ffff962b21 to your computer and use it in GitHub Desktop.
codeSpitzS89-1 과제
const makeArr = (s, max)=> {
let res = [];
for (let i = s; i <= max; i++) {
res.push(i);
}
return res;
};
console.log(makeArr(1, 10));
const err = e=>{throw e;};
const testF = (f, vList, logTitle = 'test')=>{
!Array.isArray(vList) && err('Invalid arg. vList');
!(typeof f == 'function') && err('Invalid arg. f');
for (var i = 0, len = vList.length; i < len; i++) {
try {
console.log(logTitle, `[${i}][RESULT]`, f(vList[i]));
} catch(e) {
console.log(logTitle, `[${i}][ERROR ]`, e);
}
}
};
합_재귀: {
const addArr = (_=>{
const _add = (arr, acc, idx)=> idx < arr.length ? acc + _add(arr, arr[idx], idx + 1) : acc;
const addArr = (arr)=>{
!Array.isArray(arr) && err('Invalid arr');
arr.length == 0 && err('Is empty arr');
return _add(arr, 0, 0);
};
return addArr;
})();
testF(addArr, [
undefined
, 1
, "1"
, makeArr(1, 3)
, []
, makeArr(1, 99)
, makeArr(1, 3299)
], "acc 1");
}
꼬리_재귀: {
const addArr = (_=>{
const _add = (arr, acc, idx)=> idx < arr.length ? _add(arr, acc + arr[idx], idx + 1) : acc;
const addArr = (arr)=>{
!Array.isArray(arr) && err('Invalid arr');
arr.length == 0 && err('Is empty arr');
return _add(arr, 0, 0);
}
return addArr;
})();
testF(addArr, [
undefined
, 1
, "1"
, makeArr(1, 3)
, []
, makeArr(1, 99)
, makeArr(1, 7799)
], "acc 2");
}
번역한_for: {
const addArr = arr=>{
!Array.isArray(arr) && err('Invalid arr');
arr.length == 0 && err('Is empty arr');
let acc = 0;
for(var idx = 0; idx < arr.length; idx = idx + 1) {
acc = acc + arr[idx];
}
return acc;
};
testF(addArr, [
undefined
, 1
, "1"
, makeArr(1, 3)
, []
, makeArr(1, 99)
, makeArr(1, 7799)
, makeArr(1, 1000000)
], "acc 3");
}
@hikaMaeng
Copy link

당연히 될리가 있나..
인자로 보낸 arr을 손상시켰음
이대로는 sum한번하자고 arr을 날려버리는 셈.

@yangtaeho
Copy link
Author

당연히 될리가 있나..
인자로 보낸 arr을 손상시켰음
이대로는 sum한번하자고 arr을 날려버리는 셈.

이번 주 과제가 빡셀테니 우선 말씀하신 지난 주 과제 먼저 소소하게.. 이번 주 한 것 보태서.. 수정했습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment