当前位置: 首页 > 工具软件 > Cardio > 使用案例 >

js04 - Array Cardio Day 1

劳韬
2023-12-01

主要学习js中数组的过滤方法

<script>
    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 flavours = ['Chocolate Chip', 'Kulfi', 'Caramel Praline', 'Chocolate', 'Burnt Caramel', 'Pistachio', 'Rose', 'Sweet Coconut', 'Lemon Cookie', 'Toffeeness', 'Toasted Almond', 'Black Raspberry Crunch', 'Chocolate Brownies', 'Pistachio Almond', 'Strawberry', 'Lavender Honey', 'Lychee', 'Peach', 'Black Walnut', 'Birthday Cake', 'Mexican Chocolate', 'Mocha Almond Fudge', 'Raspberry'];

    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'];

    // Array.prototype.filter()
    // 1. Filter the list of inventors for those who were born in the 1500's
    const fifteen = inventors.filter(function (inventor) {
      if (inventor.year >= 1500 && inventor.year < 1600) {
        return true
      }
    })
    console.log("1500's")
    console.log(fifteen)
    const __fifteen = inventors.filter(inventor => (inventor.year >= 1500 && inventor.year < 1600))
    console.table(__fifteen)
    // Array.prototype.map()
    // 2. Give us an array of the inventors' first and last names
    const fullName = inventors.map(inventor => (inventor.first + ' ' + inventor.last))
    console.log("fullname")
    console.log(fullName)

    // Array.prototype.sort()
    // 3. Sort the inventors by birthdate, oldest to youngest
    const older = inventors.sort(function (inventora, inventorb) {
      for (var i = 0; i < inventors.length; i++) {
        const inventora = inventors[i]
        const inventorb = inventors[i + 1]
        if (inventora.year > inventorb.year) {
          return -1
        } else {
          return 1
        }
      }
    })
    console.log('olderList')
    console.log(older)

    const ordered = inventors.sort(function (firstName, secondName) {
      if (firstName.year > secondName.year) {
        return 1;  //	  对 sort 函数,返回值为 -1 排在前面,1 排在后面
      } else {
        return -1;
      }
    });
    console.table(ordered);

    const __ordered = inventors.sort((a, b) => (a > b) ? 1 : -1);
    console.table(__ordered);
    // Array.prototype.reduce()
    // 4. How many years did all the inventors live?
    let total = 0;
    let totalArr = [];
    for (i = 0; i < inventors.length; i++) {
      inventors[i].alive = inventors[i].passed - inventors[i].year
      totalArr.push(inventors[i].alive)
    }
    for(n = 0 ; n < inventors.length; n++){
      total = total + parseInt(totalArr[n])
    }
    console.log('totallive')
    console.log(total)
    // 5. Sort the inventors by years lived
    const alive = inventors.sort(function (alivea,aliveb){
      if(alivea.passed-alivea.year > aliveb.passed-aliveb.year){
        return 1
      }else{
        return -1
      }
    })
    console.log('alive')
    console.log(alive)

    // 6. create a list of Boulevards in Paris that contain 'de' anywhere in the name
    // https://en.wikipedia.org/wiki/Category:Boulevards_in_Paris


    // 7. sort Exercise
    // Sort the people alphabetically by last name
    const lastList  = inventors.sort((lastA,lastB) => {
      return (lastA.last > lastB.last) ? 1 : -1
    })
    console.log('lastList')
    console.log(lastList)
    // 8. Reduce Exercise
    // Sum up the instances of each of these
    const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck'];
    const reduce = data.reduce((obj,item)=>{
      if(!obj[item]){
        obj[item] = 0
      }
      obj[item]++;
      return obj
    },{})
    console.log(reduce)
  </script>
 类似资料:

相关阅读

相关文章

相关问答