array

27176 ワード

-array(配列)


リストを作成する方法.文字列、数値、ブールスキームなどのすべてのデータ型を並べ替えることができます.配列された各物品にはそれぞれの位置(index)が与えられ、요소 elementと呼ばれる.要素間には異なるデータ型があり、カッコ[]内で,に分割されます.
配列のインデックスはゼロから始まります.インデックスを超えた値をエクスポートしようとすると、出力は定義されません.

-アレイ内の要素の更新

let groceryList = ['bread', 'tomatoes', 'milk'];
groceryList[1] = 'avocados';
//Output: ['bread', 'avocados', 'milk'];

-let配列とconst配列


letとして宣言された配列は再割り当てできます.
let sampleArr = [1, 2, 3];  // 출력결과 [1, 2, 3]
sampleArr = ['a string'];  // 출력결과 ['a string']
contとして宣言された配列は、新しい配列または他の値に再割り当てできませんが、配列内の要素は変更できます.

- length


array内の要素の数を知りたい場合は、使用できます.
配列名の後に属性を付けます.
const objectives = ['Learn a new languages', 'Read 52 books', 'Run a marathon'];

console.log(objectives.length);  //3출력

-様々な方法(method)


JavaScriptに構築されたメソッドを利用して、関数のように使用できます.
const chores = ['wash dishes', 'do laundry', 'take out trash'];

chores.push(1, 2);
console.log(chores); //출력 ['wash dishes', 'do laundry', 'take out trash', 1, 2 ]
  • arr.push():タイルの最後に要素を追加
  • pop():タイル末尾の要素を削除
  • unshift():タイルに要素を追加
  • shift():タイルの開始時に要素を削除
    *``unshift()、shift()はpushやpopより遅いです.アレイ内のすべてのデータを移動する必要があるためです.
  • slice(n,m):nからmを返します.ただし、本定義の配列は変更されません.カッコに何も含まれていない場合は、配列がコピーされます.
  • indexOf()は、特定の文字列が最初に発生した場所を返します.indexOf(target,fromIndex)では、fromIndexからtargetが最初に存在するインデックスが返されます.見つからない場合は、-1を返します.
  • splice(시작인덱스, 삭제할 요소 수, 요소1, 요소2,..):指定した範囲内で要素を削除または追加し、削除した要素を返し、既存の配列を変更します.
    要素数が0の場合、要素は削除されません.インデックスを開始する直前に新しい値を追加します.
    要素はオプションで、インデックスと要素の数の間に追加する値です.
  • concat(arr2, arr3):新しい配列を返し、複数の要素を追加するために他の配列を既存の配列に結合します.
  • indexOf(요소):検索要素はいくつかのインデックスにあります.配列に値がない場合は-1回、2番目のパラメータは開始位置
  • を表します.
  • lastindexOf():最後からナビゲートを開始し、同じ値が重複している場合は、後のインデックス
  • を検索します.
  • includes():戻り値true/false
  • split():文字列を配列として返し、区切り記号をパラメータとします.空の文字列を渡すと、各文字は配列を返します.
  • join():配列を文字列に結合し、変形と区切り記号をパラメータとします.何も伝わらない場合は、カンマで区切ってマージします.
  • forEach(fn):パラメータとして関数を受け入れます.この関数には3つのパラメータがあります:1.関連要因索引この配列自体は、通常1,2しか使用されません.
  • find(fn):条件を満たす最初のtrue値のみを返して終了します.ない場合はundefined
  • を返します.
  • findIndex(fn):インデックスを返し、最初のtrue値のみを返して終了します.ない場合はundefined
  • を返します.
  • filter(fn):特定の条件を満たすすべての要素を配列として返し、新しい配列を返します.
  • reverse():逆の順序で並べ替え
  • Array.isArray():jsでは配列がオブジェクトであるため、配列がオブジェクトであるかどうかを確認するために使用されます.
  • - map(), reduce(), sum(), every(), sort()

  • map(fn)アレイ内の各要素に対して実行されるコールバック関数を呼び出すことで、新しいアレイ(マッピング)を返し、アレイ内の各要素を変形します.
  • const userList = [
      { name: "tom", age: 20 },
      { name: "jaen", age: 18 },
      { name: "ari", age: 30 },
    ];
    
    const newUserList = userList.map((user, index) => {
      return Object.assign({}, userList, {
        // 새로운 객체 프로퍼티 생성하여 추가
        id: index + 1,
        isAdult: user.age > 19,
      });
    });
    
    console.log(newUserList);
  • reduce(fn)この方法は通常、配列を1つの値に縮小するために使用されるため、reduceと名付けられる.すべての要素をチェックし、累積値を出力します.
  • const arr = [1, 2, 3, 4, 5];
    
    // 배열의 모든 수 합치기, for, for of, forEach
    
    //for
    result = 0;
    for (i = 0; i < arr.length; i++) {
      result += arr[i];
    }
    console.log(result); //15
    
    //for of
    result2 = 0;
    for (let i of arr) {
      result2 += i;
    }
    console.log(result2); //15
    
    //forEach
    result3 = 0;
    arr.forEach((i) => {
      result3 += i;
    });
    console.log(result3); //15
    上記のタスクを一度に処理することがreduce()です.
    引数を関数として受け入れます.(누적계산값, 현재값) => { return 계산값 };関数の後に初期値を追加します.初期値を書かないと、配列の最初の要素が初期値になります.
    const arr = [1, 2, 3, 4, 5];
    
    const result = arr.reduce((prev, cur) => {
      return prev + cur;
    }, 0);
    
    console.log(result); //15
    
    最初は、累積値prev:0(初期値が0であるため)、現在値curが1であるため、prev+cur=1、累積値prevも1となる.
    ぐるっと回る.累積値1から現在の値2までは3です.回転を続け,3+3,6+4,10+5の過程を経て15を得た.
    const arr = [
      { name: "mike", age: 30 },
      { name: "ari", age: 10 },
      { name: "non", age: 27 },
      { name: "gigi", age: 42 },
      { name: "hoingas", age: 18 },
    ];
    
    //성인을 배열로 반환
    const result = arr.reduce((prev, cur) => {
      if (cur.age > 19) {
        prev.push(cur.name);
      }
      return prev;
    }, []); // 초기값이 빈 배열, 즉 누산값 []부터 시작한다.
    
    console.log(result);
    
    //나이의 합
    const result2 = arr.reduce((prev, cur) => {
      return prev + cur.age;
    }, 0);
    
    console.log(result2); //127
    
    //이름이 3글자 이상인 사람
    const result3 = arr.reduce((prev, cur) => {
      if (cur.name.length === 3) {
        prev.push(cur.name);
      }
      return prev;
    }, []);
    
    console.log(result3); // 'ari', 'non'
    reduce()による複数の演算
    arr.reduceRight()はreduce()機能と同じですが、配列の右側から演算を実行します.
  • sum():配列内の各要素にコールバック関数trueが返されているかどうかを確認
  • every():アレイ内のすべての要素が条件
  • に準拠していることを確認します.
    var array = [2, 9, 9];
    array.indexOf(2);     // 0
    array.indexOf(7);     // -1
    array.indexOf(9, 2);  // 2
    array.indexOf(2, -1); // -1   
    array.indexOf(2, -3); // 0
  • sort(fn)
    アレイを再配置し、アレイ自体を変更することに注意してください.
  • const arr = [27, 8, 4, 34];
    arr.sort();
    console.log(arr); // [27, 34, 4, 8] , 정렬할 때 요소를 문자열로 취급
    
    
    const arr = [27, 8, 4, 34];
    arr.sort((a, b) => {
      // 함수를 인수로 받는다.
      console.log(a, b);
      return a - b; 
      // 음수이면 a가 작은값이므로 a를 앞으로 보낸다. 
      // 0이면 아무것도 하지 않는다.   
      // 양수이면 b가 작은값이므로 b를 앞으로 보낸다.
    });
    
    //8 27  // 8, 27, 4, 34
    //4 8   // 4, 8, 27, 34
    //34 4  // 자리는 바뀌지 않는다.
    //34 8  // 자리는 바뀌지 않는다. 
    //34 27 // 자리는 바뀌지 않는다. 
    
    console.log(arr); //[4,8,27,34]
    .sortBy(arr)などの有用な機能を持つLodash Live.
    公式サイトhttps://lodash.com/
    さまざまな方法のリファレンス
    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

    -関数と配列


    関数によって配列が変更された場合、配列は関数の外に保持されます.
    const concept = ['arrays', 'can', 'be', 'mutated'];
    
    function changeArr(arr){
      arr[3] = 'MUTATED';
    };
    changeArr(concept);
    console.log(concept); //출력 [ 'arrays', 'can', 'be', 'MUTATED' ]
    
    
    function removeElement(newArr) {
      newArr.push(2);
    };
    removeElement(concept);
    console.log(concept);  //출력 [ 'arrays', 'can', 'be', 'MUTATED', 2 ]

    -ネストされたアレイ


    arrayに他のarrayを入れることができます.
    const numberClusters = [[1, 2], [3, 4], [5, 6]];
    const target0 = numberClusters[2];
    const target = numberClusters[2][1]; //인덱스 2인 요소 안에서의 인덱스 1요소 반환 
    console.log(target0); // [5, 6] 반환
    console.log(target); // 6 반환