Array.concat, Array.splice

16066 ワード

Array.concat


concatメソッドは、パラメータとして渡された値を元の配列の最後の要素として追加した新しい配列を返します.元の配列は変更されません.

const arr1 = [1, 2];

const arr2 = [3, 4];

let result = arr1.concat(arr2);
console.log(result); //[1, 2, 3, 4]

// 숫자를 원본 배열 arr1의 마지막 요소로 추가한 새로운 배열을 반환한다.
result = arr1.concat(3);
console.log(result); // [1, 2, 3]

result = arr1.concat(arr2, 5)
console.log(result); // [1, 2, 3, 4, 5]

// 원본 배열은 변경되지 않는다.
console.log(arr1); // [1, 2]
push,unshiftはconcat法で置き換えることができる.
push、unshiftはconcatと似ていますが、微妙な違いがあります.
  • push、unshiftはソースアレイを直接変更しますが、concatはソースアレイを変更するのではなく、新しいアレイに戻ります.
  • したがって、push、unshiftを使用する場合は、元の配列を変数に保存する必要があり、concatメソッドを使用する場合は、戻り値を変数に割り当てる必要があります.
    const arr1 = [3, 4]
    //unshift는 원본 배열을 직접 변경한다!
    // 그러니 원본 배열을 꼭 저장할것
    //배열을 변수에 저장해 두어야 결과를 알 수 있다.
    arr1.unshift(1, 2); 
    console.log(arr1); // [1, 2, 3, 4]
    
    // push 메소드는 원본 배열을 직접 변경한다!
    // 그러니 원본 배열을 꼭 저장할것
    //배열을 변수에 저장해 두어야 결과를 알 수 있다.
    arr1.push(5, 6);
    console.log(arr1); // [1, 2, 3, 4, 5, 6]
    
    // unshift와 push는 concat으로 대체할 수 있다.
    // arr1.unshift(1, 2)는 다음과 같이 대체할 수 있다.
    const arr2 = [3, 4]
    let result = [1, 2]concat.(arr2);
    console.log(result) // [1, 2, 3, 4]
    
    // arr1.push(5, 6);
    result = result.concat(5, 6);
    console.log(result); // [1, 2, 3, 4, 5, 6];
    渡された値が配列である場合、pushとunshiftは配列を元の配列の最後の/最初の要素に追加しますが、concatは配列を分解し、新しい配列を最後の要素に追加します.
    const arr3 = [3, 4];
    arr3.unshift([1, 2]);
    arr3.push([5, 6]);
    
    console.log(arr3); // [[1, 2], 3, 4, [5, 6]]
    
    let result = [1, 2].concat([3, 4]); //배열이 들아깄다.
    
    result = result.concat([5, 6]); // 다시 배열을 넣었다.
    console.log(result); // [1, 2, 3, 4, 5, 6]

    Array.splice


    ソース配列の中央に要素を追加する場合、または中央の要素を削除する場合は、結合方法を使用します.spliceには3つのパラメータがあり、ソースアレイを直接変更します.

  • start:ソース配列の要素のインデックスの削除を開始するには、startを指定するだけで、ソース配列のstartからすべての要素を削除できます.startが負の値の場合、配列の末尾のインデックスを表します.startが-1の場合、配列の最後の要素を指します.nは最後のn要素を表す.

  • deleteCount:削除する要素の数.deleteCountが0の場合、コンテンツは削除されません(Optional)

  • items:削除位置の要素(itme)に挿入するには、省略すると元の配列から削除するだけです.
    (Optional)
  • const arr = [1, 2, 3, 4];
    
    // 인덱스 1부터 2개의 요소를 제거하고, 20, 30을 넣는다.
    const result = arr.splice(1, 2, 20, 30);
    
    console.log(result); // [2, 3] => 제거된 요소가 반환된다. 원본 배열을 변경한다.
    console.log(arr) // [1, 20, 30, 4]
    const arr = [1, 2, 3, 4];
    
    // 원본 배열의 인덱스 1부터 0까지 요소를 제거하고, 새로운 요소 100을 넣는다.
    const result = arr.splice(1, 0, 100);
    
    console.log(arr); // [1, 100, 2, 3, 4]
    console.log(result); // [] 삭제된게 없다.

    アレイから特定の要素を除去


    前述のindexOfメソッドで特定の要素のインデックスを取得し、パッチメソッドを使用します.
    const arr = [1, 2, 3, 1, 2];
    
    // 배열에 array에서 item 요소를 제거한다. 여러개라면 하나만 제거한다.
    function remove(array, item) {
        // 제거할 item의 요소의 인덱스를 얻는다.
        const index = array.indexOf(item);
        // 제거할 item요소가 있다면 제거한다.
        if (index !== -1) array.splice(index, 1);
    
        return array;
    }
    console.log(remove(arr, 2)); // [1, 3, 1, 2]