복붙노트

[JQUERY] 어떻게 특정 지수 (자바 스크립트)에서 배열에 항목을 삽입하려면?

JQUERY

어떻게 특정 지수 (자바 스크립트)에서 배열에 항목을 삽입하려면?

해결법


  1. 1.당신이 원하는 것은 기본 배열 객체에 스플 라이스 기능입니다.

    당신이 원하는 것은 기본 배열 객체에 스플 라이스 기능입니다.

    arr.splice (인덱스 0, 아이템); 지정된 인덱스에 도착에 항목을 삽입합니다 (첫 번째 0 항목을 삭제하다, 그냥 삽입입니다).

    이 예에서는 배열을 생성하며 인덱스 2로에 요소를 추가

    VAR의 도착 = []; 도착 [0] = "야니"; 도착 [1] = "Hege"; 도착 [2] = "썩은"; 도착 [3] = "카이 짐"; 도착 [4] = "Borge는"; CONSOLE.LOG (arr.join ()); arr.splice (2,0 '레네 "); CONSOLE.LOG (arr.join ());


  2. 2.이 작업을 수행하여 Array.insert 방법을 구현할 수 있습니다 :

    이 작업을 수행하여 Array.insert 방법을 구현할 수 있습니다 :

    Array.prototype.insert = function ( index, item ) {
        this.splice( index, 0, item );
    };
    

    그럼 당신은 그것을 같이 사용할 수 있습니다 :

    var arr = [ 'A', 'B', 'D', 'E' ];
    arr.insert(2, 'C');
    
    // => arr == [ 'A', 'B', 'C', 'D', 'E' ]
    

  3. 3.스플 라이스 이외에, 당신은 원래의 배열 변이되지 않지만 추가 된 항목으로 새 배열을 만들 때이 방법을 사용할 수 있습니다. 가능하면 당신은 일반적으로 돌연변이를 피해야한다. 여기 ES6 확산 연산자를 사용하고 있습니다.

    스플 라이스 이외에, 당신은 원래의 배열 변이되지 않지만 추가 된 항목으로 새 배열을 만들 때이 방법을 사용할 수 있습니다. 가능하면 당신은 일반적으로 돌연변이를 피해야한다. 여기 ES6 확산 연산자를 사용하고 있습니다.

    CONST 항목 = [1, 2, 3, 4, 5] CONST 삽입 = (도착, 인덱스 인 newItem) => [ // 지정된 인덱스 전에 어레이의 일부 ... arr.slice (0, 인덱스) // 삽입 항목 새로운 물품, // 지정된 인덱스 후의 어레이의 일부 ... arr.slice (인덱스) ] CONST 결과 = 인서트 (항목 1, 10) CONSOLE.LOG (결과) // [1, 10, 2, 3, 4, 5]

    이 새로운 항목의 나머지 연산자를 사용하는 기능을 약간 조정하여 둘 이상의 항목을 추가하는 데 사용하고, 확산이 반환 된 결과에서뿐만 아니라 수 있습니다

    CONST 항목 = [1, 2, 3, 4, 5] CONST 삽입 = (도착 인덱스 ... newItems) => [ // 지정된 인덱스 전에 어레이의 일부 ... arr.slice (0, 인덱스) // 삽입 항목 ...새로운 항목, // 지정된 인덱스 후의 어레이의 일부 ... arr.slice (인덱스) ] CONST 결과 = 인서트 (항목 1, 10, 20) CONSOLE.LOG (결과) // [1, 10, 20, 2, 3, 4, 5]


  4. 4.

    /* Syntax:
       array.insert(index, value1, value2, ..., valueN) */
    
    Array.prototype.insert = function(index) {
        this.splice.apply(this, [index, 0].concat(
            Array.prototype.slice.call(arguments, 1)));
        return this;
    };
    

    그것은 여러 요소를 삽입 (기본 스플 라이스가하는대로) 및 지원 체인 수 있습니다 :

    ["a", "b", "c", "d"].insert(2, "X", "Y", "Z").slice(1, 6);
    // ["b", "X", "Y", "Z", "c"]
    
    /* Syntax:
       array.insert(index, value1, value2, ..., valueN) */
    
    Array.prototype.insert = function(index) {
        index = Math.min(index, this.length);
        arguments.length > 1
            && this.splice.apply(this, [index, 0].concat([].pop.call(arguments)))
            && this.insert.apply(this, arguments);
        return this;
    };
    

    그것은 주어진 배열 인수에서 배열을 병합 할 수 있으며 체인을 지원합니다 :

    ["a", "b", "c", "d"].insert(2, "V", ["W", "X", "Y"], "Z").join("-");
    // "a-b-V-W-X-Y-Z-c-d"
    

    DEMO : http://jsfiddle.net/UPphH/


  5. 5.더 좋은 방법을 자바 스크립트 배열로 배열을 잇기 :이 스택 오버플로 대답 체크 아웃 한 번에 배열로 여러 요소를 삽입하려면

    더 좋은 방법을 자바 스크립트 배열로 배열을 잇기 :이 스택 오버플로 대답 체크 아웃 한 번에 배열로 여러 요소를 삽입하려면

    또한 여기에 두 예를 설명하기 위해 일부 기능은 다음과 같습니다 :

    function insertAt(array, index) {
        var arrayToInsert = Array.prototype.splice.apply(arguments, [2]);
        return insertArrayAt(array, index, arrayToInsert);
    }
    
    function insertArrayAt(array, index, arrayToInsert) {
        Array.prototype.splice.apply(array, [index, 0].concat(arrayToInsert));
        return array;
    }
    

    당신이 youself을 위해 그것을 볼 수 있도록 마지막으로 여기에 jsFiddle은 다음과 같습니다 http://jsfiddle.net/luisperezphd/Wc8aS/

    그리고 이것은 당신이 기능을 사용하는 방법입니다 :

    // if you want to insert specific values whether constants or variables:
    insertAt(arr, 1, "x", "y", "z");
    
    // OR if you have an array:
    var arrToInsert = ["x", "y", "z"];
    insertArrayAt(arr, 1, arrToInsert);
    

  6. 6.적절한 함수형 프로그래밍 및 체인 목적 Array.prototype.insert의 발명 ()이 필수적이다. 그것은 완전히 의미가 빈 배열 대신 돌연변이 배열을 반환했다면 사실 스플 라이스는 완벽한 수 있었다. 그래서 여기 간다

    적절한 함수형 프로그래밍 및 체인 목적 Array.prototype.insert의 발명 ()이 필수적이다. 그것은 완전히 의미가 빈 배열 대신 돌연변이 배열을 반환했다면 사실 스플 라이스는 완벽한 수 있었다. 그래서 여기 간다

    Array.prototype.insert = 함수 (I, 나머지 ...) { this.splice (I, 0, ... 나머지) 이를 반환 } VAR의 A = [3,4,8,9]; (+ JSON.stringify (a.insert (-2,5,6,7-)) + "<사전>", "") document.write를;

    확인 음 Array.prototype.splice () 하나 개의 돌연변이 원의 배열과 일부처럼 불평 수와 위의 그 잘뿐만 아니라 것으로 판명 수도 "당신에 속하지 않는 것을 수정하면 안됩니다." 그래서 공공 복지를 위해 난 원래 배열 변이하지 않는 다른 Array.prototype.insert ()를주고 싶습니다. 여기 간다;

    Array.prototype.insert = 함수 (I, 나머지 ...) { this.slice (0, I) .concat (나머지 this.slice (I))를 호출; } VAR의 A = [3,4,8,9], B = a.insert (-2,5,6,7-); CONSOLE.LOG (JSON.stringify (a)); CONSOLE.LOG (JSON.stringify (b));


  7. 7.나는 또한이 자바 스크립트에는 삽입 방법은 없지만, 우리는 내장 당신을 위해 일을 배열 방법, 그것은이라고 접합하는 방법을,이 경우에는 순수 자바 스크립트를 사용하는 것이 좋습니다 ...

    나는 또한이 자바 스크립트에는 삽입 방법은 없지만, 우리는 내장 당신을 위해 일을 배열 방법, 그것은이라고 접합하는 방법을,이 경우에는 순수 자바 스크립트를 사용하는 것이 좋습니다 ...

    하자가 무엇의 스플 라이스 ()를 참조 ...

    OK, 우리는이 배열 아래를 상상 :

    const arr = [1, 2, 3, 4, 5];
    

    우리는이 같은 3을 제거 할 수 있습니다 :

    arr.splice(arr.indexOf(3), 1);
    

    그것은 3을 반환하지만 지금 우리가 도착을 확인하는 경우, 우리는이 :

    [1, 2, 4, 5]
    

    지금까지 좋은, 그래서, 그러나 우리는 스플 라이스를 사용하여 배열에 새 요소를 추가하는 방법? 편곡에하자 넣어 다시 3 ...

    arr.splice(2, 0, 3);
    

    의 우리가 한 일을 보자 ...

    우리는 다시 스플 라이스를 사용하지만, 두 번째 인수에 대해이 시간, 우리는 우리가 어떤 항목을 삭제할 할 수단을 0 통과, 그러나 동시에, 우리는 두 번째 인덱스에 추가됩니다 3 번째 인수를 추가 ...

    당신은 우리가 삭제 예를 들어 지금 우리가 할 수있는 동시에 추가 할 수 있습니다, 알고 있어야합니다 :

    arr.splice(2, 2, 3);
    

    인덱스 2에서이 개 항목을 삭제하는, 다음 인덱스 2에 3을 추가 한 결과는 다음과 같습니다

    [1, 2, 3, 5];
    

    이 스플 라이스 작업의 방법 각 항목을 보여주고있다 :


  8. 8.특정 인덱스에 추가] 단일 요소

    특정 인덱스에 추가] 단일 요소

    //Append at specific position(here at index 1)
    arrName.splice(1, 0,'newName1');
    //1: index number, 0: number of element to remove, newName1: new element
    
    
    //Append at specific position (here at index 3)
    arrName[3] = 'newName1';
    

    특정 인덱스에 추가] 여러 요소

    //Append from index number 1
    arrName.splice(1, 0,'newElemenet1', 'newElemenet2', 'newElemenet3');
    //1: index number from where append start, 
    //0: number of element to remove, 
    //newElemenet1,2,3: new elements
    

  9. 9.여기에 두 가지 방법이 있습니다 :

    여기에 두 가지 방법이 있습니다 :

    CONST 배열 = '내', '이름', '함자']; array.splice (2,0 '이고'); CONSOLE.LOG ( "방법 1", array.join ( ""));

    또는

    = {기능 (인덱스 항목) Array.prototype.insert this.splice (인덱스 0, 아이템); }; CONST 배열 = '내', '이름', '함자']; ( '는'2) array.insert; 을 console.log ( "방법 2 :"array.join ( ""));


  10. 10.배열 번호의 사용과 함께 또 다른 가능한 해결책은 줄일 수 있습니다.

    배열 번호의 사용과 함께 또 다른 가능한 해결책은 줄일 수 있습니다.

    CONST 도착 = "애플", "오렌지", "딸기"]; CONST arr2 = [1, 2, 4; CONST 삽입 = (도착, 항목, 인덱스) => A, I) {(기능 (들 arr.reduce 내가 === 인덱스? s.push (항목 A) : s.push (A); 수익의; }, []); CONSOLE.LOG (삽입 (편곡, "바나나", 1)); CONSOLE.LOG (인서트 (arr2, 3, 2))


  11. 11.이 이미 대답되었지만, 나는 다른 방법이 메모를 추가 해요.

    이 이미 대답되었지만, 나는 다른 방법이 메모를 추가 해요.

    나는 그들이 정의에 의해 정렬 순서가 보장되지 않는 "연관 배열"(즉, 객체)의 이탈로, 특정 위치에 배열에 항목 알려진 숫자를 배치하고 싶었다. 나는 객체의 배열로 결과 배열을 원하지만,이 배열 순서를 보장하기 때문에 배열의 특정 순서로 객체. 그래서 이런 짓을.

    먼저 소스 객체는 JSONB 문자열은 PostgreSQL의에서 검색. 나는 각 자식 객체의 "순서"속성으로 분류하고 싶어.

    var jsonb_str = '{"one": {"abbr": "", "order": 3}, "two": {"abbr": "", "order": 4}, "three": {"abbr": "", "order": 5}, "initialize": {"abbr": "init", "order": 1}, "start": {"abbr": "", "order": 2}}';
    
    var jsonb_obj = JSON.parse(jsonb_str);
    

    대상 노드의 개수가 알려져 있기 때문에, I는, 최초로 지정된 길이의 배열을 생성 :

    var obj_length = Object.keys(jsonb_obj).length;
    var sorted_array = new Array(obj_length);
    

    그리고 정말 어떤 장소를 복용 "정렬"없이 배열의 원하는 위치에 새로 만든 임시 개체를 배치, 객체를 반복.

    for (var key of Object.keys(jsonb_obj)) {
      var tobj = {};
      tobj[key] = jsonb_obj[key].abbr;
    
      var position = jsonb_obj[key].order - 1;
      sorted_array[position] = tobj;
    }
    
    console.dir(sorted_array);
    

  12. 12.배열 # 스플 라이스 ()는 당신이 정말로 배열을 돌연변이 피하려고하지 않는 길을 가야하는 것입니다. 이 개 배열은 arr1과 arr2을 감안할 때, 여기 당신이 첫 번째 요소 후 arr1에 arr2의 내용을 삽입 할 방법은 다음과 같습니다

    배열 # 스플 라이스 ()는 당신이 정말로 배열을 돌연변이 피하려고하지 않는 길을 가야하는 것입니다. 이 개 배열은 arr1과 arr2을 감안할 때, 여기 당신이 첫 번째 요소 후 arr1에 arr2의 내용을 삽입 할 방법은 다음과 같습니다

    CONST arr1 = 'A', 'D'를, 'E']; CONST arr2 = 'B', 'C']; arr1.splice (1, 0, ... arr2); // 이제 [ 'A', 'B', 'C', 'D', 'E'를] 포함 arr1 CONSOLE.LOG (arr1)

    당신이 배열 변이에 대해 우려하는 경우 (예를 들어, Immutable.js을 사용하는 경우), 대신 () 'P'로 스플 라이스와 혼동하지 슬라이스 ()를 사용할 수 있습니다.

    const arr3 = [...arr1.slice(0, 1), ...arr2, ...arr1.slice(1)];
    

  13. 13.여전히 하나 문제가 발생하고있어 누구나 위의 모든 옵션을 시도하고있어 적이 없다. 내 솔루션을 공유하고있어, 이것은 당신이 명시 적으로 배열 대 개체의 속성을 상태로 wan't하지 않는 배려를 가지고하는 것입니다.

    여전히 하나 문제가 발생하고있어 누구나 위의 모든 옵션을 시도하고있어 적이 없다. 내 솔루션을 공유하고있어, 이것은 당신이 명시 적으로 배열 대 개체의 속성을 상태로 wan't하지 않는 배려를 가지고하는 것입니다.

    function isIdentical(left, right){
        return JSON.stringify(left) === JSON.stringify(right);
    }
    
    function contains(array, obj){
        let count = 0;
        array.map((cur) => {
              if(this.isIdentical(cur, obj)) count++;
        });
        return count > 0;
    }
    

    이것은 참조 배열을 반복하고 확인하고 싶은 객체에 비교의 조합입니다, 그것은 일치하는 경우 다음 반복 문자열로 모두 변환합니다. 그럼 그냥 셀 수 있습니다. 이 개선 될 수 있지만 정착 곳이다. 도움이 되었기를 바랍니다.


  14. 14.다음과 같은 감소 방법의 이익을 촬영 :

    다음과 같은 감소 방법의 이익을 촬영 :

    function insert(arr, val, index) {
        return index >= arr.length 
            ? arr.concat(val)
            : arr.reduce((prev, x, i) => prev.concat(i === index ? [val, x] : x), []);
    }
    

    그래서이 방법에서 우리는 새로운 배열을 반환 할 수 있습니다 (멋진 기능 방법이 될 것입니다 - 더 훨씬 더 사용 푸시 또는 스플 라이스 이상) 인덱스에 삽입 요소와 인덱스가 배열의 길이보다 큰 경우가 삽입됩니다와 끝.


  15. 15.나는이 시도하고 그것을 잘 작동합니다!

    나는이 시도하고 그것을 잘 작동합니다!

    var initialArr = ["India","China","Japan","USA"];
    initialArr.splice(index, 0, item);
    

    지수는 삽입하거나 요소를 삭제하고자하는 위치입니다. 즉, 두 번째 파라미터는 0 제거 할 인덱스에서 요소들의 수를 정의 당신이 배열에 만들려는 새 항목은 항목입니다. 그것은 하나 또는 둘 이상이 될 수 있습니다.

    initialArr.splice(2, 0, "Nigeria");
    initialArr.splice(2, 0, "Australia","UK");
    

  16. 16.여기에 내가 내 응용 프로그램 중 하나를 사용하는 작업 기능입니다.

    여기에 내가 내 응용 프로그램 중 하나를 사용하는 작업 기능입니다.

    이 검사 항목 종료하면

    let ifExist = (item, strings = [ '' ], position = 0) => {
         // output into an array with empty string. Important just in case their is no item. 
        let output = [ '' ];
        // check to see if the item that will be positioned exist.
        if (item) {
            // output should equal to array of strings. 
            output = strings;
           // use splice in order to break the array. 
           // use positition param to state where to put the item
           // and 0 is to not replace an index. Item is the actual item we are placing at the prescribed position. 
            output.splice(position, 0, item);
        }
        //empty string is so we do not concatenate with comma or anything else. 
        return output.join("");
    };
    

    그리고 나서 아래를 호출합니다.

    ifExist("friends", [ ' ( ', ' )' ], 1)}  // output: ( friends )
    ifExist("friends", [ ' - '], 1)}  // output:  - friends 
    ifExist("friends", [ ':'], 0)}  // output:   friends: 
    

  17. 17.이전 스레드의 비트,하지만 난 스플 라이스는 확실히 혼란 인터페이스의 비트를 가지고 있기 때문에 위의 Redu에 동의해야합니다. 정확한 지점을 증명하는 동안 그리고 그 cdbajorin에 의해 주어진 응답이다 "는 0보다 큰 있다면 두 번째 매개 변수가 0 인 경우에만 빈 배열을 반환, 그것은 배열에서 제거 항목을 반환합니다." 이 기능의 목적은 감안할 때 스플 라이스이다 또는 "또한 변화에 가입하거나 연결할 수 있습니다. 당신은 .... 지금 요소를 추가하거나 제거하는 것에 관련된 것이다 변화하고 있음을 설립 배열을 가지고", 야콥 켈러 이전 말했다 그 제거 된 요소가 존재하는 경우, 반환 값은 기껏 서투르다. 그리고 나는 100 %는이 방법이 더 나은이의 접합 요소와 새로운 배열이 추가 자연 보이는 돌아온 경우 체인에 적합 한 수 있음을 동의합니다. 그런 다음 [ "19", "17"]. 스플 라이스 같은 일을 할 수있다 (1,0, "18"). ( "...") 또는 반환 된 배열과 같은 당신이 무엇을 가입 할 수 있습니다. 가 제거 된 것을 반환 사실은 좀 말도 안되는 이럴입니다. 방법의 의도는 "요소의 집합 잘라"이었다 그리고 만약 그게 아마, 유일한 목적입니다했다. 내가 아마 그 요소를 잘라 작은 이유가, 내가 비록 이미 절단하고있는 무슨을 모르는 경우처럼하지 않는 것 같다? 이 새로운 배열은 기존의 배열에서 오히려 기존의 배열을 돌연변이보다 구성되어 등 CONCAT,지도, 감소, 슬라이스,처럼 행동하면 좋을 것입니다. 사람들은 모든 체인 방식이며, 그것은 중요한 문제가된다. 그것은 체인 배열을 조작 오히려 일반적이다. 언어가 하나 또는 다른 방향으로 가서 가능한 한 그것에 충실하려고 할 필요가처럼 보인다. 자바 스크립트 기능 덜 선언되고, 그냥 규범에서 이상한 편차처럼 보인다.

    이전 스레드의 비트,하지만 난 스플 라이스는 확실히 혼란 인터페이스의 비트를 가지고 있기 때문에 위의 Redu에 동의해야합니다. 정확한 지점을 증명하는 동안 그리고 그 cdbajorin에 의해 주어진 응답이다 "는 0보다 큰 있다면 두 번째 매개 변수가 0 인 경우에만 빈 배열을 반환, 그것은 배열에서 제거 항목을 반환합니다." 이 기능의 목적은 감안할 때 스플 라이스이다 또는 "또한 변화에 가입하거나 연결할 수 있습니다. 당신은 .... 지금 요소를 추가하거나 제거하는 것에 관련된 것이다 변화하고 있음을 설립 배열을 가지고", 야콥 켈러 이전 말했다 그 제거 된 요소가 존재하는 경우, 반환 값은 기껏 서투르다. 그리고 나는 100 %는이 방법이 더 나은이의 접합 요소와 새로운 배열이 추가 자연 보이는 돌아온 경우 체인에 적합 한 수 있음을 동의합니다. 그런 다음 [ "19", "17"]. 스플 라이스 같은 일을 할 수있다 (1,0, "18"). ( "...") 또는 반환 된 배열과 같은 당신이 무엇을 가입 할 수 있습니다. 가 제거 된 것을 반환 사실은 좀 말도 안되는 이럴입니다. 방법의 의도는 "요소의 집합 잘라"이었다 그리고 만약 그게 아마, 유일한 목적입니다했다. 내가 아마 그 요소를 잘라 작은 이유가, 내가 비록 이미 절단하고있는 무슨을 모르는 경우처럼하지 않는 것 같다? 이 새로운 배열은 기존의 배열에서 오히려 기존의 배열을 돌연변이보다 구성되어 등 CONCAT,지도, 감소, 슬라이스,처럼 행동하면 좋을 것입니다. 사람들은 모든 체인 방식이며, 그것은 중요한 문제가된다. 그것은 체인 배열을 조작 오히려 일반적이다. 언어가 하나 또는 다른 방향으로 가서 가능한 한 그것에 충실하려고 할 필요가처럼 보인다. 자바 스크립트 기능 덜 선언되고, 그냥 규범에서 이상한 편차처럼 보인다.


  18. 18.스플 라이스 방법을 사용하면 확실히 당신이 현재 위치에서 배열에 삽입해야하는 경우 가장 좋은 대답이다.

    스플 라이스 방법을 사용하면 확실히 당신이 현재 위치에서 배열에 삽입해야하는 경우 가장 좋은 대답이다.

    당신은 불변의 함수에 대해 그 반환 새로운 업데이트 배열을 찾고 대신 삽입에 원래의 배열을 돌연변이하는 경우에는 다음과 같은 기능을 사용할 수 있습니다.

    함수 인서트 (배열의 인덱스) { CONST 항목 = Array.prototype.slice.call (인수 2); 창 [] .concat (array.slice (0, 인덱스), 항목 array.slice (지수)); } CONST리스트 = "하나", "두 ','세 ']; CONST리스트 1 = 인서트 (목록 0 '제로'); // 삽입 단일 항목 리스트 2 = CONST 인서트 (목록, 3 '네', '오', '여섯'); // 삽입 여러 을 console.log ( '원본 목록',리스트); 을 console.log ( '삽입의 목록 1 :'목록 1); 을 console.log ( '삽입의리스트 2',리스트 2);

    참고 : 이것은 모두 이전 및 최신 브라우저에서 작동 그래서 그 일의 사전 ES2015의 방법입니다.

    당신이 ES6를 사용하는 경우에 당신은 나머지 매개 변수를 너무 밖으로 시도 할 수 있습니다; 이 답변을 참조하십시오.


  19. 19.오늘 (2020년 4월 24일) 나는 크고 작은 배열에 대한 선택 솔루션에 대한 테스트를 수행합니다. 나는 크롬 81.0, 사파리 13.1, 파이어 폭스 75.0에 맥 OS 높은 시에라 10.13.6에 그 (것)들을 시험했다.

    오늘 (2020년 4월 24일) 나는 크고 작은 배열에 대한 선택 솔루션에 대한 테스트를 수행합니다. 나는 크롬 81.0, 사파리 13.1, 파이어 폭스 75.0에 맥 OS 높은 시에라 10.13.6에 그 (것)들을 시험했다.

    모든 브라우저

    시험은 두 그룹으로 나누었다 : 제자리 솔루션 (AI, BI, CI) 및 비 제자리 용액 (D, E, F)과 두 가지 경우에 대해 수행했다

    테스트 코드 조각 아래에 제시

    jsfiddle

    AI 함수 (도착, I, EL) { arr.splice (I 0, EL); 편곡 반환; } 함수 BI (도착, I, EL) { Array.prototype.splice.apply (도착 [I, 0, EL]); 편곡 반환; } 함수 CI (I, 엘, 언) { Array.prototype.splice.call (도착, I, 0, EL); 편곡 반환; } 함수 D (엘을 난을, 언) { 리턴 arr.slice (0, I) .concat (EL, arr.slice (I)); } 함수 E (도착, I, EL) { 복귀 ... arr.slice (0, I), EL, arr.slice ... (I)] } 함수 F (도착, I, EL) { 리턴 arr.reduce (? (S, A, J) => (j-I s.push (a) s.push (EL은, A)) ■ []); } // ------------- // 테스트 // ------------- 도착하자 = "A", "B", "C", "D", "E", "F"]; 하자 로그 = (N, F) => { ([... 도착, 3 "NEW") A = F하자; CONSOLE.LOG ( '$ {N} : $ {A}]'); }; ( 'AI'AI)를 기록; ( 'BI'BI)를 기록; 로그 ( 'CI'CI); 로그 ( 'D', D); 로그 ( 'E', E); ( 'F', F)를 기록; 이 조각은 선물 테스트 코드를 (그렇지 테스트를 수행)

    크롬 작은 어레이 예의 결과는 다음과 같다

  20. from https://stackoverflow.com/questions/586182/how-to-insert-an-item-into-an-array-at-a-specific-index-javascript by cc-by-sa and MIT license