Scrimbaの2020年までの私のシンプルなエントリ



↓ Skip to the challenges ↓

Scrimbaは、クリスマスの日に至るまで、私たちの伝統を完了するための新しいJavaScriptの課題の多くで今月いっぱい.ここでは、すべての非プロジェクトスタイルの課題の1つのライナーJavaScript機能を使用して、各課題に私の非常にシンプルなソリューションです.プロジェクトのスタイルの課題(日8、15、23、および23日と24日の間に含まれる余分なボーナスチャレンジScrimba)のために、私はあなたがどのようにそれぞれを解決したかを確認するために周りに突くことができるように、私はCodepenを使用して私の完全なソリューションを埋めました.
フロントエンドの開発は私のフルタイムのキャリアですが、仕事は多くの同じように傾向があるように、それは今までと何度もそれを混ぜるのはいいですし、スパイスアップルーチンの開発だけでなく、新しい方法やテクニックを学ぶに挑戦するいくつかの課題に取り組む.私の個人的な好みの課題はSum Odd Fibonacci Numbers 私が「ハイジャックした」というチャレンジは、Array.prototype.map() 関数とMax Consecutive Sum 私の知識を広げたチャレンジArray.prototype.fill() 関数.いくつかのCSSの楽しみのためにChallenge 8 どのように私は別のサイコロの顔を作成を参照してください.
これ以上のADOなし-楽しむ!☕️🎄🎁
目次
  • 🍬 Challenge 1: Candies
  • ⭐️ Challenge 2: Deposit Profit
  • 🧚 Challenge 3: Chunky Monkey
  • 🎄 Challenge 4: Century From Year
  • 🐑 Challenge 5: Reverse a String
  • 🤶 Challenge 6: Sort by Length
  • 🦌 Challenge 7: Count Vowel Consonant
  • 🔔 Challenge 8: The Rolling Dice
  • 🎺 Challenge 9: Sum Odd Fibonacci Numbers
  • 💂‍♀️ Challenge 10: Adjacent Elements Product
  • 🎁 Challenge 11: Avoid Obstacles
  • ❄️ Challenge 12: Valid Time
  • 🤴 Challenge 13: Extract Each Kth
  • 🧸 Challenge 14: Maximal Adjacent Difference
  • 🕊 Challenge 15: Carousel
  • 🧦 Challenge 16: Insert Dashes
  • 👑 Challenge 17: Different Symbols Naive
  • 🎅🏻 Challenge 18: Array Previous Less
  • 🐫 Challenge 19: Alphabet Subsequence
  • Challenge 20: Domain Type
  • 🦃 Challenge 21: Sum of Two
  • 👼 Challenge 22: Extract Matrix Column
  • 🌠 Challenge 23: Social Media Input
  • 💯 Challenge BONUS: Test Your Agility

  • ☃️ Challenge 24: Max Consecutive Sum

  • 🍬 怒りチャレンジ1:キャンディ
    const candies = (children, candy) => Math.floor(candy / children) * children;
    candies(3, 10); // 9
    
    Take a swing at Challenge 1 ・・・↑ Back to the Table of Contents ↑
    ⭐️ チャレンジ2:預金利益
    const depositProfit = (deposit, rate, threshold) => Math.ceil(Math.log(threshold / deposit) / Math.log(1 + (rate / 100)));
    depositProfit(100, 20, 170); // 3
    
    Take a swing at Challenge 2 ・・・↑ Back to the Table of Contents ↑
    🧚 ゼンチャレンジ3:チャッキーモンキー
    const chunkyMonkey = (values, size) => values.length <= size ? [values] : [values.slice(0, size), ...chunkyMonkey(values.slice(size), size)];
    chunkyMonkey(["a", "b", "c", "d"], 2); // [["a", "b"], ["c", "d"]]
    
    Take a swing at Challenge 3 ・・・↑ Back to the Table of Contents ↑
    🎄 月チャレンジ4:年からの世紀
    const centuryFromYear = num => Math.ceil(num/100);
    centuryFromYear(1905); // 20
    centuryFromYear(1700); // 17
    
    Take a swing at Challenge 4 ・・・↑ Back to the Table of Contents ↑
    🐑 チャレンジ5:文字列を逆にする
    const reverseAString = str => str.split('').reverse().join('');
    reverseAString('hello'); // "olleh"
    
    Take a swing at Challenge 5 ・・・↑ Back to the Table of Contents ↑
    🤶 ナンバーチャレンジ6:長さによるソート
    const sortByLength = strs => strs.sort((a,b) => a.length - b.length, 0);
    sortByLength(["abc", "", "aaa", "a", "zz"]); // ["", "a", "zz", "abc", "aaa"]
    
    Take a swing at Challenge 6 ・・・↑ Back to the Table of Contents ↑
    🦌 チャレンジ7:母音子音カウント
    const countVowelConsonant = str => str.split('').reduce((a,b) => a + (/[aAeEiIoOuU]/.test(b) ? 1 : 2), 0);
    countVowelConsonant('abcde'); // 8
    
    Take a swing at Challenge 7 ・・・↑ Back to the Table of Contents ↑
    🔔 ツァーチャレンジ8ローリングダイス
    Take a swing at Challenge 8 ・・・↑ Back to the Table of Contents ↑
    🎺 ナンバーチャレンジ9:サム奇数フィボナッチ数
    const sumOddFibonacciNumbers = num => [0,1,1,...Array(num-3).fill()].map((e,i,a) => a[i-2] ? ((a[i] = a[i-2] + a[i-1]) || a[i-2] + a[i-1]) : e).filter(e => e % 2 && e <= num).reduce((a,b) => a + b, 0);
    sumOddFibonacciNumbers(10); // 10
    sumOddFibonacciNumbers(1000); // 1785
    
    Take a swing at Challenge 9 ・・・↑ Back to the Table of Contents ↑
    💂‍♀️ チャレンジ10:隣接する要素の製品
    const adjacentElementsProduct = nums => Math.max(...nums.map((e,i,a) => a[i-1] ? e * a[i-1] : "").filter(e => e)) || undefined;
    adjacentElementsProduct([3, 6, -2, -5, 7, 3]); // 21
    
    Take a swing at Challenge 10 ・・・↑ Back to the Table of Contents ↑
    🎁 ノーチャレンジ11:障害物を避ける
    const avoidObstacles = nums => Array(Math.max(...nums)).fill().map((e, i) => i + 1).filter(e => !nums.includes(e)).find(e => nums.every(f => f % e !== 0));
    avoidObstacles([5, 3, 6, 7, 9]); // 4
    
    Take a swing at Challenge 11 ・・・↑ Back to the Table of Contents ↑
    ❄️ ノーチャレンジ12:有効時間
    const validTime = str => str.includes(":") && str.split(":").length === 2 && str.split(":").every(e => !isNaN(e)) && Array(24).fill().map((_,i) => i).includes(parseInt(str.split(":")[0])) && Array(60).fill().map((_,i) => i).includes(parseInt(str.split(":")[1]));
    validTime('13:58'); // true
    validTime('25:51'); // false
    validTime('02:76'); // false
    
    Take a swing at Challenge 12 ・・・↑ Back to the Table of Contents ↑
    🤴 チャレンジ13:各kthを抽出
    const extractEachKth = (nums, index) => nums.filter(e => e % index);
    extractEachKth([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3); // [1, 2, 4, 5, 7, 8, 10]
    
    Take a swing at Challenge 13 ・・・↑ Back to the Table of Contents ↑
    🧸 チャレンジ14:最大隣接差
    const arrayMaximalAdjacentDifference = nums => Math.max(...nums.map((e,i,a) => a[i-1] - e).filter(e => e).map(e => Math.abs(e))) || undefined;
    arrayMaximalAdjacentDifference([2, 4, 1, 0]); // 3
    arrayMaximalAdjacentDifference([2, 9, 1, 0]); // 8
    
    Take a swing at Challenge 14 ・・・↑ Back to the Table of Contents ↑
    🕊 月チャレンジ15:回転木馬
    Take a swing at Challenge 15 ・・・↑ Back to the Table of Contents ↑
    🧦 チャレンジ16:挿入ダッシュ
    const insertDashes = arr => arr.split(" ").map(e => [...e].join("-")).join(" ");
    insertDashes("aba caba"); // "a-b-a c-a-b-a"
    
    Take a swing at Challenge 16 ・・・↑ Back to the Table of Contents ↑
    👑 ナンバーチャレンジ17:異なるシンボルナイーブ
    const differentSymbolsNaive = str => [...new Set(str)].length;
    differentSymbolsNaive('cabca'); // 3
    
    Take a swing at Challenge 17 ・・・↑ Back to the Table of Contents ↑
    🎅🏻 チャレンジ18:配列前より少ない
    const arrayPreviousLess = nums => nums.map((e,i,a) => a[i-1] < e ? a[i-1] : -1);
    arrayPreviousLess([3, 5, 2, 4, 5]); // [-1, 3, -1, 2, 4]
    
    Take a swing at Challenge 18 ・・・↑ Back to the Table of Contents ↑
    🐫 シューチャレンジ19:アルファベットサブシーケンス
    const alphabetSubsequence = str => str === [...new Set(str)].sort().join('');
    alphabetSubsequence('effg'); // false
    alphabetSubsequence('cdce'); // false
    alphabetSubsequence('ace');  // true
    
    Take a swing at Challenge 19 ・・・↑ Back to the Table of Contents ↑
    ✨ チャレンジ20:ドメインタイプ
    const domainType = (domains, domainTypes = { com: "commercial", net: "network", org: "organization", info: "information" }) => domains.map(e => e.split('.')[e.split('.').length-1]).map(e => domainTypes[e]);
    domainType(["en.wiki.org", "codefights.com", "happy.net", "code.info"]); // ["organization", "commercial", "network", "information"]
    
    Take a swing at Challenge 20 ・・・↑ Back to the Table of Contents ↑
    🦃 チャレンジ21:2の合計
    const sumOfTwo = (nums1, nums2, value) => nums1.map(e => nums2.map(f => e + f)).flat().some(e => e === value);
    sumOfTwo([1, 2, 3], [10, 20, 30, 40], 42); // true
    
    Take a swing at Challenge 21 ・・・↑ Back to the Table of Contents ↑
    👼 チャレンジ22:マトリックスカラムの抽出
    const extractMatrixColumn = (matrix, column) => matrix.map(e => e[column]);
    extractMatrixColumn([[1, 1, 1, 2], [0, 5, 0, 4], [2, 1, 3, 6]], 2); // [1, 0, 3]
    
    Take a swing at Challenge 22 ・・・↑ Back to the Table of Contents ↑
    🌠 ノーチャレンジ23:ソーシャルメディア入力
    Take a swing at Challenge 23 ・・・↑ Back to the Table of Contents ↑
    💯 チャレンジチャレンジボーナス:あなたの敏捷性をテスト
    Take a swing at this Challenge BONUS ・・・↑ Back to the Table of Contents ↑
    ☃️ ナンバーチャレンジ24:連続最大
    const arrayMaxConsecutiveSum = (nums, elementCount) => Array(nums.length - elementCount + 1).fill().map((_,i) => nums.slice(i, i + elementCount)).map(e => e.reduce((a,b) => a + b, 0)).reduce((a,b) => a > b ? a : b);
    arrayMaxConsecutiveSum([2, 3, 5, 1, 6], 2); // 8
    
    Take a swing at Challenge 24 ・・・↑ Back to the Table of Contents ↑