[D+98]航海9911第(2)方法整理


1週間のアルゴリズム駐車を終了しました.
一昨日の模擬試験では、Repleitで問題を解く方法を少し迷ったので自信が落ちて(コンソールの下でもう少し注文すればいいのですが、使わないのでその簡単ささえわからない)、今日試験が終わってから、よくできても悪くてもすぐに体が垂れてしまいました.😭 后话アルゴリズムは私达のクラス全体が合格したニュースをテストします!!すばらしいです!)🎊🎉🎊🎉)
今日は,過去1週間にアルゴリズムを解きながら30問を解く際によく使われた方法を整理する.
  • indexOf
    文字列に書き込まれた場所を検索する関数を使用して、特定の文字
  • を検索します.
    str.indexOf(찾고자하는 문자열[, 찾기 시작하는 위치를 나타내는 인덱스 값_옵션])
  • Math.pow
  • Math.pow(2, 3) // 2의3승
  • Math.sqrt
  • Math.sqrt(9); // 3
    |反転アレイ要素
  • reverse
    const a = [1, 2, 3];
    console.log(a); // [1, 2, 3]
    
    a.reverse();
    console.log(a); // [3, 2, 1]
  • parseInt戻り整数
  • 👉 예외
    let str = parseInt('123가나다') ;
    console.log( str ) ;
    // 123
    
    let str = parseInt('가나다123') ;
    console.log( str ) ;
    // NaN
    👉 Number와 차이점
    let test = '2020년도';
    parseInt(test); // 2020
    Number(test); // NaN
    
    let test = '10.12345';
    parseInt(test); // 10
    Number(test); // 10.12345
    parseFloat(test); // 10.12345
  • sort
    アレイ内の要素を適切な位置に揃え、アレイに戻ります.
    デフォルトのソート順が文字列のUnicodeコードポイント
  • const months = ['March', 'Jan', 'Feb', 'Dec'];
    months.sort();
    console.log(months);
    => ["Dec", "Feb", "Jan", "March"]
    
    const array1 = [1, 30, 4, 21, 100000];
    array1.sort();
    console.log(array1);
    => [1, 100000, 21, 30, 4]
    👉 오름차순
    function compareNumbers(a, b) {
      return a - b;
    }
    
    👉 내림차순
    function compareNumbers(a, b) {
      return b - a;
    }
  • split
    Stringオブジェクトは、指定した区切り文字を使用して複数の文字列に分割されます.
    str.split([separator[, limit_옵션]])
  • var myString = 'Hello World. How are you doing?';
    var splits = myString.split(' ', 3);
    console.log(splits);
    =>["Hello", "World.", "How"]
  • Date
    1970年1月1日のUTC(協定世界時)の真夜中との時間差をミリ秒で表す整数を含む.
  • 👉 getMonth() : 월 값을 현지 시간에 맞춰 반환 (월은 0부터 시작)
    const moonLanding = new Date('July 20, 69 00:20:18');
    
    console.log(moonLanding.getMonth()); 
    // expected output: 6
    👉 getDate() : 주어진 날짜의 현지 시간 기준 일을 반환
    const birthday = new Date('August 19, 1975 23:15:30');
    const date1 = birthday.getDate();
    
    console.log(date1);
    // expected output: 19
    👉 getDay() : 주어진 날짜의 현지 시간 기준 요일을 반환 (0은 일요일)
    const day1 = birthday.getDay();
    // Sunday - Saturday : 0 - 6
    
    console.log(day1);
    // expected output: 2
    👉 getFullYear() : 주어진 날짜의 현지 시간 기준 연도를 반환
    const moonLanding = new Date('July 20, 69 00:20:18');
    
    console.log(moonLanding.getFullYear());
    // expected output: 1969
    
  • filter
    指定された関数をテストしたすべての要素を収集し、新しい配列
  • に戻ります.
    const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
    
    const result = words.filter(word => word.length > 6);
    
    console.log(result);
    // expected ["exuberant", "destruction", "present"]
  • map
    与えられた関数を呼び出した結果をアレイ内の各要素に集約し、新しいアレイ
  • を返します.
    const array1 = [1, 4, 9, 16];
    
    // pass a function to map
    const map1 = array1.map(x => x * 2);
    
    console.log(map1);
    // [2, 8, 18, 32]
    👉 예제1
    var numbers = [1, 4, 9];
    var roots = numbers.map(Math.sqrt);
    // roots는 [1, 2, 3]
    // numbers는 그대로 [1, 4, 9]
    👉 예제2
    var kvArray = [{key:1, value:10},
                   {key:2, value:20},
                   {key:3, value: 30}];
    
    var reformattedArray = kvArray.map(function(obj){
       var rObj = {};
       rObj[obj.key] = obj.value;
       return rObj;
    });
    // reformattedArray는 [{1:10}, {2:20}, {3:30}]
    // kvArray는 그대로
    // [{key:1, value:10},
    //  {key:2, value:20},
    //  {key:3, value: 30}]
  • Math.max
    入力値として受け取った0以上の数字のうち最大の数字
  • を返します.
    console.log(Math.max(1, 3, 2));
    // expected output: 3
    
    console.log(Math.max(-1, -3, -2));
    // expected output: -1
    
    const array1 = [1, 3, 2];
    
    console.log(Math.max(...array1));
    // expected output: 3

  • Math.min()
    関数は、指定した数値の最小値を返します.

  • Math.abs()
    指定した数値の絶対値を返します.
    xが正または0の場合はxを返し、xが負の場合はxの逆の値、すなわち正を返します.
  • Math.abs('-1');     // 1
    Math.abs(-2);       // 2
    Math.abs(null);     // 0
    Math.abs('');       // 0
    Math.abs([]);       // 0
    Math.abs([2]);      // 2
    Math.abs([1,2]);    // NaN
    Math.abs({});       // NaN
    Math.abs('string'); // NaN
    Math.abs();         // NaN
  • splice
    アレイ内の既存の要素を削除または置換したり、新しい要素を追加したりして、アレイの内容
  • を変更します.
    array.splice(start[, 제거할요소[, 추가할요소1[, 추가할요소2[, ...]]]])
    const months = ['Jan', 'March', 'April', 'June'];
    months.splice(1, 0, 'Feb');
    // inserts at index 1
    console.log(months);
    // expected output: Array ["Jan", "Feb", "March", "April", "June"]
    
    months.splice(4, 1, 'May');
    // replaces 1 element at index 4
    console.log(months);
    // expected output: Array ["Jan", "Feb", "March", "April", "May"]
  • slice
    配列の開始から終了(終了を含まない)までの浅いコピーを新しい配列オブジェクトに返します.
    元のシナリオは変更されません.
  • arr.slice([0을 시작으로 하는 추출 시작점 인덱스[, 추출을 종료 할 0 기준 인덱스]])
    let fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
    let citrus = fruits.slice(1, 3)
    
    // fruits contains ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
    // citrus contains ['Orange','Lemon']
  • reduce
  • var maxCallback = ( acc, cur ) => Math.max( acc.x, cur.x );
    
    // initialValue 없이 reduce()
    [ { x: 22 }, { x: 42 } ].reduce( maxCallback ); // 42
    [ { x: 22 }            ].reduce( maxCallback ); // { x: 22 }
    [                      ].reduce( maxCallback ); // TypeError
    [0, 1, 2, 3, 4].reduce(function(이전반환값/첫번째호출, 처리할현재요소, 처리할현재요소인덱스, reduce()를호출한배열) {
      return accumulator + currentValue;
    });
    
    [0, 1, 2, 3, 4].reduce( (prev, curr) => prev + curr );