Javascript30 - Array practice

기록일기📫·2020년 12월 7일
0

javascript30

목록 보기
4/16
post-thumbnail

이번 실습은 javascript array object의 method를 배우는 실습으로 console창을 확인하면 결과를 볼 수 있다.

03. Array practice


Learning Point

  • Javascript Array object의 기본 function에 대해 학습한다.

Javascript Part

const inventors = [
        { first: "Albert", last: "Einstein", year: 1879, passed: 1955 },
        { first: "Isaac", last: "Newton", year: 1643, passed: 1727 },
        { first: "Galileo", last: "Galilei", year: 1564, passed: 1642 },
        { first: "Marie", last: "Curie", year: 1867, passed: 1934 },
        { first: "Johannes", last: "Kepler", year: 1571, passed: 1630 },
        { first: "Nicolaus", last: "Copernicus", year: 1473, passed: 1543 },
        { first: "Max", last: "Planck", year: 1858, passed: 1947 },
        { first: "Katherine", last: "Blodgett", year: 1898, passed: 1979 },
        { first: "Ada", last: "Lovelace", year: 1815, passed: 1852 },
        { first: "Sarah E.", last: "Goode", year: 1855, passed: 1905 },
        { first: "Lise", last: "Meitner", year: 1878, passed: 1968 },
        { first: "Hanna", last: "Hammarström", year: 1829, passed: 1909 },
      ];

const people = ['Beck, Glenn', 'Becker, Carl', 'Beckett, Samuel','Beddoes, Mick',
      'Beecher, Henry', 'Beethoven, Ludwig', 'Begin, Menachem', 'Belloc, Hilaire', 
      'Bellow, Saul', 'Benchley, Robert', 'Benenson, Peter', 'Ben-Gurion, David', 
      'Benjamin, Walter', 'Benn, Tony', 'Bennington, Chester', 'Benson, Leana', 
      'Bent, Silas', 'Bentsen, Lloyd', 'Berger, Ric', 'Bergman, Ingmar', 'Berio, Luciano',
      'Berle, Milton', 'Berlin, Irving', 'Berne, Eric', 'Bernhard, Sandra', 'Berra, Yogi',
      'Berry, Halle', 'Berry, Wendell', 'Bethea, Erin', 'Bevan, Aneurin', 'Bevel, Ken', 
      'Biden, Joseph', 'Bierce, Ambrose', 'Biko, Steve', 'Billings, Josh', 'Biondo, Frank',
      'Birrell, Augustine', 'Black Elk', 'Blair, Robert', 'Blair, Tony', 'Blake, William'];

    
// 1. Filter the list of inventors for those who were born in the 1500's
const fifteen = inventors.filter((inventor) => inventor.year >= 1500 && inventor.year < 1600);
/* filter 함수는 배열 안에 있는 모든 인자에 대해 반복문을 돌려서 조건에 맞는 애들만 return해줌 */
      

// 2. Give us an array of the inventors first and last names
/* map은 mapping 함수라고 생각하면 됨.특정 criteria를 세워 무조건 array element에 하나씩 대응시킨 array return */
const fullName = inventors.map((inventor) => `${inventor.first} ${inventor.last}`);


/* 음수(-1)을 반환하면 a가 먼저옴, 양수 반환하면(1) b가 먼저옴 */
const sortedArr2 = inventors.sort((a, b) => {
  a.year > b.year ? 1 : -1;
});

    
// 4. How many years did all the inventors live all together?
const totalYear = inventors.reduce((total, inventor) => {
  return total + inventor.passed - inventor.year;
}, 0);
/* sort 처럼 인자 하나 하나에 대해서 실행함. 0은 초기값 */
console.log(totalYear);

// 5. Sort the inventors by years lived
const oldest = inventors.sort(function(a, b) {
  const lastInventor = a.passed - a.year;
  const nextInventor = b.passed - b.year;
  return lastInventor > nextInventor ? -1 : 1;
});
console.table(oldest);

0개의 댓글