Guest User

Untitled

a guest
Nov 22nd, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. /**
  2. * 10개의 정수를 입력받아 배열에 저장한 후 짝수 번째 입력된 값의 합과
  3. * 홀수 번째 입력된 값의 평균을 출력하는 프로그램을 작성하시오.
  4. * (평균은 소수 첫째자리까지 출력합니다.)
  5. *
  6. *
  7. * 95 100 88 65 76 89 58 93 77 99
  8. * sum : 446
  9. * avg : 78.8
  10. *
  11. */
  12.  
  13. function inputArr(...args) {
  14. const arr = args;
  15. const even = (num, i) => i % 2 === 0;
  16. const odd = (num, i) => i % 2 !== 0;
  17. const sum = (prev, curr) => prev + curr;
  18.  
  19. const firstSolution = arr.filter(even).reduce(sum);
  20. const secondSolution = arr.filter(odd).reduce(sum) / args.filter(odd).length;
  21.  
  22. return secondSolution;
  23. }
  24.  
  25. console.log(inputArr(95, 100, 88, 65, 76, 89, 58, 93, 77, 99));
  26.  
  27.  
  28. 자연수 N을 입력받아 N이 홀수인 경우에는 N부터 1까지의 홀수를
  29. 짝수인 경우는 N부터 2까지의 짝수를 모두 출력하는 프로그램을 재귀함수로 작성하세요.
  30.  
  31. function getOddEvenDesc(num) {
  32. const isEven = num % 2 === 0 && 2;
  33. const isOdd = num % 2 !== 0 && 1;
  34.  
  35. if ((isOdd && num < 1) || (isEven && num < 2)) return;
  36.  
  37. console.log(num)
  38.  
  39. return getOddEvenDesc(num - 2);
  40. }
  41.  
  42. getOddEvenDesc(15);
  43.  
  44.  
  45. //----------------
  46. /**
  47. * Evaluated Left to Right
  48. * The default parameters are evaluated from left to right.
  49. * This is indeed confusing but a very powerful feature. Let us look at an example.
  50. */
  51.  
  52. function findEvil(array, evil = 'darth vader', respect = 'Bad ' + evil) {
  53. if (array.find(item => item === evil)) {
  54. return respect;
  55. }
  56. }
  57.  
  58. // As you can see,
  59. // we can reuse a param on the left as a default param for something on the right.
  60. // Note that respect will get the evil param with the default check applied.
  61.  
  62. /**
  63. * Required Param Check
  64. * You can use default params to enforce a required parameter.
  65. * In the example below, we are enforcing evil as a required prop.
  66. */
  67.  
  68. const isRequired = () => { throw new Error('param is required'); };
  69.  
  70. function filterEvil(array, evil = isRequired()) {
  71. return array.filter(item => item !== evil);
  72. }
  73.  
  74. /**
  75. * Destructured Default Params
  76. * You can also use default params in a destructed expression.
  77. */
  78.  
  79. function firstItem([first, second] = ['luke', 'skywalker']) {
  80. return first;
  81. }
  82.  
  83. function findName({ name } = { name : 'darth' }) {
  84. return name;
  85. }
  86.  
  87. console.log();
Add Comment
Please, Sign In to add comment