17.操作配列


17.操作配列


17-1. 要素の追加


要素のない配列を宣言します.
let cities = [];
変数citiesに空の配列を割り当てました.次に、次のように要素を追加できます.
cities[0] = "서울"; // ["서울"]
cities[1] = "대전"; // ["서울", "대전"]
cities[2] = "대구"; // ["서울", "대전", "대구"]
そして6つ目の要素に「済州島」をあらかじめ配分しておきましょうか?
cities[5] = "제주도";
要素を順番に追加する必要がある場合がありますが、必要な場所に任意に割り当てることができます.citiesの4番目、5番目の要素をconsole.logに出力すると、どのような状況になりますか?
出力の値を自分で作成して検証してください.
確認しましたか?
何も割り当てられていないため、undefinedとして出力される.
これは、次のように6つの要素を持つ配列です.["서울", "대전", "대구", undefined, undefined, "제주도"]要素を変更する場合は、次のように配列のインデックスにアクセスして値を指定できます.
cities[5] = "포항";
console.log(cities[5]);

17-2. push/unshiftメソッド


他の方法で要素を追加することもできます.
let cities = [];
cities.push("경주", "전주");
cities.unshift("인천");
push(),unshift()メソッドは、配列に要素を追加する関数です.
両者の違いは、要素が配列に追加される位置が異なることです.pushアレイの最後の部分である末尾に要素を追加します.unshift配列の最前面、すなわち上部に要素を追加します.console.logからcitiesまでレイアウトを確認してください.
console.log(cities);
確認しましたか?
しかしよく考えてみると、citiesという変数は作成したばかりの変数で、今ではpushの方法を使うことができますか?
つまり、citiesを変数[]配列に割り当てると、citiesがArrayタイプになります.
Arrayには組み込み方法がたくさんあります.これには、確認したばかりのpushunshiftが含まれます.
 
整理すると、2つの並べ替え操作方法があります.
  • indexアクセスによる修正または追加
  • push,unshiftメソッドに追加
  • let day = ['m', 's', 'w', 't'];
    day[1] = 't';
    day[4] = 'f';
    day[5] = 's'; // 방법 (1)
    
    let month = [1, 2, 3, 4]
    month.push(5); // 방법 (2)

    17-3. Popメソッド


    配列に要素を追加するほか、要素を削除することもできます.
    cities.pop();
    console.log(cities)
    popメソッドは、最後の要素を削除し、最後の要素の値を返します.
    let lastCity = cities.pop();
    console.log(lastCity);

     

    Assignment


    divideArrayInHalf関数を次のように実装してください。

  • divideArrayInHalf関数はarrayをパラメータとして受け入れます.この配列は数値のみで構成され、5つの要素(要素)があります.
  • divideArrayInHalf関数は、入力パラメータの配列から新しい構成の配列結果を返します.

  • array要素では、10以下の要素はresultの一番前を返し、10以上の要素はresultの一番後ろに再構築された配列を返します.

  • 再構築の順序は、配列の最後の要素から最後の要素です.つまり、配列された後の要素から再構築してください.

  • たとえば、入力パラメータの配列が次のようになります.
    [1, 20, 10, 5, 100]
    結果配列の作成順序は次のとおりです.
  • [100]
  • [5, 100]
  • [10, 5, 100]
  • [10, 5, 100, 20]
  • [1, 10, 5, 100, 20]
  •  
    したがって、次の結果を返す必要があります.
    [1, 10, 5, 100, 20]
    
    
    // Assignment - 다음 함수 안에 코드를 구현하세요
    function divideArrayInHalf(array) {
        let result = [];//빈 배열 생성
        for(let i = array.length; i >= 0; i--){ //역순으로 loop
          if(array[i] <= 10){//10보다 같거나작으면 unshift로 재배열
            result.unshift(array[i]); 
          }else if(array[i] > 10){//10보다 크면  push 로 재배열
            result.push(array[i]);
          }
        }    
        return result; //return 으로 출력
    }
    
    // 아래의 코드는 절대로 수정하거나 삭제하지 마세요.
    module.exports = {divideArrayInHalf};