Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Bạn muốn hàm

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, ...newItems) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted items
  ...newItems,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10, 20)

console.log(result)
// [1, 10, 20, 2, 3, 4, 5]
6 trên đối tượng mảng gốc.
const items = [1, 2, 3, 4, 5]

const insert = (arr, index, ...newItems) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted items
  ...newItems,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10, 20)

console.log(result)
// [1, 10, 20, 2, 3, 4, 5]
6
function on the native array object.

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, ...newItems) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted items
  ...newItems,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10, 20)

console.log(result)
// [1, 10, 20, 2, 3, 4, 5]
7 sẽ chèn
const items = [1, 2, 3, 4, 5]

const insert = (arr, index, ...newItems) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted items
  ...newItems,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10, 20)

console.log(result)
// [1, 10, 20, 2, 3, 4, 5]
8 vào
const items = [1, 2, 3, 4, 5]

const insert = (arr, index, ...newItems) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted items
  ...newItems,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10, 20)

console.log(result)
// [1, 10, 20, 2, 3, 4, 5]
9 tại
/* 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;
};
0 được chỉ định (xóa
/* 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;
};
1 các mục trước tiên, nghĩa là nó chỉ là một phần chèn).

Trong ví dụ này, chúng tôi sẽ tạo một mảng và thêm một phần tử vào nó vào INDEX 2:

var arr = [];
arr[0] = "Jani";
arr[1] = "Hege";
arr[2] = "Stale";
arr[3] = "Kai Jim";
arr[4] = "Borge";

console.log(arr.join()); // Jani,Hege,Stale,Kai Jim,Borge
arr.splice(2, 0, "Lene");
console.log(arr.join()); // Jani,Hege,Lene,Stale,Kai Jim,Borge

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Đã trả lời ngày 25 tháng 2 năm 2009 lúc 14:32Feb 25, 2009 at 14:32

TVanfossontvanfossontvanfosson

515K97 Huy hiệu vàng695 Huy hiệu bạc793 Huy hiệu Đồng97 gold badges695 silver badges793 bronze badges

21

Bạn có thể thực hiện phương thức

/* 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;
};
2 bằng cách thực hiện việc này:

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

Sau đó, bạn có thể sử dụng nó như:

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

// => arr == [ 'A', 'B', 'C', 'D', 'E' ]

Amj

1231 Huy hiệu bạc6 Huy hiệu đồng1 silver badge6 bronze badges

Đã trả lời ngày 3 tháng 10 năm 2012 lúc 14:26Oct 3, 2012 at 14:26

Fresc 81fresc 81FrEsC 81

4.0871 Huy hiệu vàng12 Huy hiệu bạc2 Huy hiệu đồng1 gold badge12 silver badges2 bronze badges

10

Khác với Splice, bạn có thể sử dụng phương pháp này sẽ không làm biến đổi mảng ban đầu, nhưng nó sẽ tạo ra một mảng mới với mục được thêm vào. Nó rất hữu ích, khi bạn cần tránh đột biến. Tôi đang sử dụng toán tử lây lan ES6 ở đây.

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, newItem) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted item
  newItem,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10)

console.log(result)
// [1, 10, 2, 3, 4, 5]

Điều này có thể được sử dụng để thêm nhiều mục bằng cách điều chỉnh chức năng một chút để sử dụng toán tử REST cho các mục mới và cũng lan truyền nó trong kết quả được trả về:

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, ...newItems) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted items
  ...newItems,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10, 20)

console.log(result)
// [1, 10, 20, 2, 3, 4, 5]

Đã trả lời ngày 4 tháng 7 năm 2016 lúc 9:18Jul 4, 2016 at 9:18

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Gafigafigafi

11.6K2 Huy hiệu vàng29 Huy hiệu bạc31 Huy hiệu đồng2 gold badges29 silver badges31 bronze badges

6

Phương pháp mảng tùy chỉnh /* 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; }; 3

1. Với nhiều đối số và hỗ trợ chuỗi

/* 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;
};

Nó có thể chèn nhiều yếu tố (như

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, ...newItems) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted items
  ...newItems,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10, 20)

console.log(result)
// [1, 10, 20, 2, 3, 4, 5]
6 gốc) và hỗ trợ chuỗi:

["a", "b", "c", "d"].insert(2, "X", "Y", "Z").slice(1, 6);
// ["b", "X", "Y", "Z", "c"]

2. Với các đối số loại mảng hợp nhất và hỗ trợ chuỗi

/* 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;
};

Nó có thể hợp nhất các mảng từ các đối số với mảng đã cho và cũng hỗ trợ chuỗi:

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

Bản demo: http://jsfiddle.net/upphh/ http://jsfiddle.net/UPphH/

Đã trả lời ngày 25 tháng 3 năm 2013 lúc 17:45Mar 25, 2013 at 17:45

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

VisionVisionVisioN

Badges vàng 141K3131 gold badges276 silver badges277 bronze badges

5

Nếu bạn muốn chèn nhiều phần tử vào một mảng cùng một lúc, hãy xem câu trả lời tràn ngăn xếp này: Một cách tốt hơn để chia một mảng thành một mảng trong JavaScript

Ngoài ra đây là một số chức năng để minh họa cả hai ví dụ:

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;
}

Cuối cùng, đây là một jsfiddle để bạn có thể tự mình xem nó: http://jsfiddle.net/luisperezphd/wc8as/

Và đây là cách bạn sử dụng các chức năng:

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

Đã trả lời ngày 30 tháng 8 năm 2012 lúc 4:37Aug 30, 2012 at 4:37

Luis Perezluis PerezLuis Perez

Phim thương hiệu vàng 27.2K1010 gold badges78 silver badges80 bronze badges

4

Sử dụng

/* 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;
};
5 là một cách dễ dàng để đạt được nó

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

Đọc thêm về

/* 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;
};
5 tại đây

Đã trả lời ngày 18 tháng 12 năm 2021 lúc 17:11Dec 18, 2021 at 17:11

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Ran Turnerran TurnerRan Turner

Huy hiệu vàng 11,5K432 Huy hiệu bạc44 Huy hiệu đồng4 gold badges32 silver badges44 bronze badges

Giải pháp & Hiệu suất

Hôm nay (2020.04.24) Tôi thực hiện các thử nghiệm cho các giải pháp được chọn cho các mảng lớn và nhỏ. Tôi đã thử nghiệm chúng trên MacOS V10.13.6 (High Sierra) trên Chrome 81.0, Safari 13.1 và Firefox 75.0.

Kết luận

Cho tất cả các trình duyệt

  • Đáng ngạc nhiên đối với các mảng nhỏ, các giải pháp không tại chỗ dựa trên
    /* 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;
    };
    
    7 và
    /* 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;
    };
    
    8 (D, E, F) thường nhanh hơn 10x-100x so với các giải pháp tại chỗ
  • Đối với các mảng lớn, các giải pháp tại chỗ dựa trên
    const items = [1, 2, 3, 4, 5]
    
    const insert = (arr, index, ...newItems) => [
      // part of the array before the specified index
      ...arr.slice(0, index),
      // inserted items
      ...newItems,
      // part of the array after the specified index
      ...arr.slice(index)
    ]
    
    const result = insert(items, 1, 10, 20)
    
    console.log(result)
    // [1, 10, 20, 2, 3, 4, 5]
    6 (AI, BI và CI) nhanh nhất (đôi khi ~ 100 lần-nhưng nó phụ thuộc vào kích thước mảng)
  • Đối với các mảng nhỏ, giải pháp BI là chậm nhất
  • Đối với các mảng lớn, giải pháp E là chậm nhất

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Thông tin chi tiết

Các thử nghiệm được chia thành hai nhóm: Giải pháp tại chỗ (AI, BI và CI) và các giải pháp không tại chỗ (D, E và F) và được thực hiện cho hai trường hợp:

  • Kiểm tra một mảng có 10 yếu tố - bạn có thể chạy nó ở đây
  • Kiểm tra một mảng với 1.000.000 yếu tố - bạn có thể chạy nó ở đây

Mã được kiểm tra được trình bày trong đoạn trích dưới đây:

JSfiddle

Kết quả ví dụ cho một mảng nhỏ trên Google Chrome dưới đây:

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Đã trả lời ngày 24 tháng 4 năm 2020 lúc 11:07Apr 24, 2020 at 11:07

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Kamil Kiełczewskikamil KiełczewskiKamil Kiełczewski

77K26 Huy hiệu vàng339 Huy hiệu bạc318 Huy hiệu Đồng26 gold badges339 silver badges318 bronze badges

3

Đối với mục đích lập trình và chuỗi chức năng thích hợp, một phát minh của

["a", "b", "c", "d"].insert(2, "X", "Y", "Z").slice(1, 6);
// ["b", "X", "Y", "Z", "c"]
0 là rất cần thiết. Trên thực tế,
const items = [1, 2, 3, 4, 5]

const insert = (arr, index, ...newItems) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted items
  ...newItems,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10, 20)

console.log(result)
// [1, 10, 20, 2, 3, 4, 5]
6 có thể đã hoàn hảo nếu nó đã trả lại mảng đột biến thay vì một mảng trống hoàn toàn vô nghĩa. Vì vậy, nó đi ở đây:

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

Chà, OK, ở trên với

/* 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;
};
5, người ta đã làm biến đổi mảng ban đầu và một số có thể phàn nàn như "bạn không nên sửa đổi những gì không thuộc về bạn" và điều đó cũng có thể đúng. Vì vậy, đối với phúc lợi công cộng, tôi muốn đưa ra một
["a", "b", "c", "d"].insert(2, "X", "Y", "Z").slice(1, 6);
// ["b", "X", "Y", "Z", "c"]
0 khác không làm thay đổi mảng ban đầu. Nó đi từ đây;

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

Đã trả lời ngày 13 tháng 5 năm 2016 lúc 23:22May 13, 2016 at 23:22

Phân phối lạiRedu

23.6K6 Huy hiệu vàng52 Huy hiệu bạc69 Huy hiệu Đồng6 gold badges52 silver badges69 bronze badges

4

Tôi khuyên bạn nên sử dụng JavaScript thuần túy trong trường hợp này. Ngoài ra, không có bất kỳ phương thức chèn nào trong JavaScript, nhưng chúng tôi có một phương thức là phương thức mảng tích hợp thực hiện công việc cho bạn. Nó được gọi là splice ...JavaScript in this case. Also there isn't any insert method in JavaScript, but we have a method which is a built-in Array method which does the job for you. It's called splice...

Hãy xem SPLICE () ...splice()...

Phương thức splice () thay đổi nội dung của một mảng bằng cách loại bỏ các phần tử hiện có và/hoặc thêm các phần tử mới.

OK, hãy tưởng tượng chúng ta có mảng này dưới đây:

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

Chúng ta có thể xóa

["a", "b", "c", "d"].insert(2, "X", "Y", "Z").slice(1, 6);
// ["b", "X", "Y", "Z", "c"]
4 như thế này:

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

Nó sẽ trả về 3, nhưng nếu chúng tôi kiểm tra ARR ngay bây giờ, chúng tôi có:

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

Cho đến nay, rất tốt, nhưng làm thế nào chúng ta có thể thêm một phần tử mới vào mảng bằng splice?

Hãy đặt lại 3 trong ARR ...

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

Hãy xem những gì chúng ta đã làm ...

Chúng tôi sử dụng lại splice, nhưng lần này cho đối số thứ hai, chúng tôi vượt qua 0, nghĩa là chúng tôi không muốn xóa bất kỳ mục nào, nhưng đồng thời, chúng tôi thêm một đối số thứ ba là 3 sẽ được thêm vào chỉ mục thứ hai ...splice again, but this time for the second argument, we pass 0, meaning we don't want to delete any item, but at the same time, we add a third argument which is the 3 that will be added at second index...

Bạn nên lưu ý rằng chúng tôi có thể xóa và thêm cùng một lúc. Ví dụ, bây giờ chúng ta có thể làm:delete and add at the same time. For example, now we can do:

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

Sẽ xóa hai mục tại INDEX 2. sau đó thêm 3 tại INDEX 2 và kết quả sẽ là:two items at index 2. Then add 3 at index 2 and the result will be:

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

Điều này cho thấy cách mỗi mục trong Splice Work:

mảng.splice (start, deletecount, item1, item2, item3 ...)

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Đã trả lời ngày 25 tháng 12 năm 2017 lúc 13:04Dec 25, 2017 at 13:04

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

AlirezaalirezaAlireza

96.3K26 Huy hiệu vàng265 Huy hiệu bạc168 Huy hiệu đồng26 gold badges265 silver badges168 bronze badges

1

Bạn có thể sử dụng ["a", "b", "c", "d"].insert(2, "X", "Y", "Z").slice(1, 6); // ["b", "X", "Y", "Z", "c"] 5 cho điều này

Phương thức

["a", "b", "c", "d"].insert(2, "X", "Y", "Z").slice(1, 6);
// ["b", "X", "Y", "Z", "c"]
5 thường nhận được ba đối số khi thêm một phần tử:

  1. Chỉ số của mảng nơi mục sẽ được thêm vào.index of the array where the item is going to be added.
  2. Số lượng các mặt hàng được loại bỏ, trong trường hợp này là
    /* 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;
    };
    
    1.number of items to be removed, which in this case is
    /* 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;
    };
    
    1.
  3. Phần tử để thêm. to add.

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

// => arr == [ 'A', 'B', 'C', 'D', 'E' ]
0

Đã trả lời ngày 6 tháng 1 lúc 9:46Jan 6 at 9:46

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

GassgassGass

5.2092 Huy hiệu vàng23 Huy hiệu bạc29 Huy hiệu đồng2 gold badges23 silver badges29 bronze badges

3

Đây là hai cách:

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

// => arr == [ 'A', 'B', 'C', 'D', 'E' ]
1

Hoặc

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

// => arr == [ 'A', 'B', 'C', 'D', 'E' ]
2

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Đã trả lời ngày 28 tháng 8 năm 2019 lúc 9:28Aug 28, 2019 at 9:28

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

M. Hamza Rajputm. Hamza RajputM. Hamza Rajput

6.3351 Huy hiệu vàng37 Huy hiệu bạc 30 Huy hiệu Đồng1 gold badge37 silver badges30 bronze badges

Nối một phần tử duy nhất tại một chỉ mục cụ thể

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

// => arr == [ 'A', 'B', 'C', 'D', 'E' ]
3

Nối nhiều phần tử vào một chỉ mục cụ thể

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

// => arr == [ 'A', 'B', 'C', 'D', 'E' ]
4

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Đã trả lời ngày 28 tháng 6 năm 2018 lúc 19:13Jun 28, 2018 at 19:13

SrikrushnasrikrushnaSrikrushna

3,8551 Huy hiệu vàng36 Huy hiệu bạc45 Huy hiệu đồng1 gold badge36 silver badges45 bronze badges

7

["a", "b", "c", "d"].insert(2, "X", "Y", "Z").slice(1, 6);
// ["b", "X", "Y", "Z", "c"]
8 là cách để đi, trừ khi bạn thực sự muốn tránh biến đổi mảng. Cho 2 mảng
["a", "b", "c", "d"].insert(2, "X", "Y", "Z").slice(1, 6);
// ["b", "X", "Y", "Z", "c"]
9 và
/* 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;
};
0, đây là cách bạn sẽ chèn nội dung của
/* 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;
};
0 vào
["a", "b", "c", "d"].insert(2, "X", "Y", "Z").slice(1, 6);
// ["b", "X", "Y", "Z", "c"]
9 sau phần tử đầu tiên:

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

// => arr == [ 'A', 'B', 'C', 'D', 'E' ]
5

Nếu bạn lo ngại về việc biến đổi mảng (ví dụ: nếu sử dụng bất biến.js), thay vào đó bạn có thể sử dụng

/* 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;
};
3, không bị nhầm lẫn với
["a", "b", "c", "d"].insert(2, "X", "Y", "Z").slice(1, 6);
// ["b", "X", "Y", "Z", "c"]
5 với
/* 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;
};
5.

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

// => arr == [ 'A', 'B', 'C', 'D', 'E' ]
6

Đã trả lời ngày 23 tháng 12 năm 2019 lúc 19:37Dec 23, 2019 at 19:37

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

vkarpov15vkarpov15vkarpov15

3.38423 Huy hiệu bạc20 Huy hiệu đồng23 silver badges20 bronze badges

Một giải pháp khả thi khác, với việc sử dụng

/* 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;
};
6.

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

// => arr == [ 'A', 'B', 'C', 'D', 'E' ]
7

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Đã trả lời ngày 5 tháng 4 năm 2017 lúc 17:06Apr 5, 2017 at 17:06

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

người dùng loại người dùngkind user

36,7K6 Huy hiệu vàng63 Huy hiệu bạc77 Huy hiệu đồng6 gold badges63 silver badges77 bronze badges

Mặc dù điều này đã được trả lời, tôi đã thêm ghi chú này cho một cách tiếp cận khác.

Tôi muốn đặt một số lượng mục đã biết vào một mảng, vào các vị trí cụ thể, vì chúng đi ra từ một "mảng kết hợp" (tức là một đối tượng) theo định nghĩa không được đảm bảo là theo thứ tự được sắp xếp. Tôi muốn mảng kết quả là một mảng các đối tượng, nhưng các đối tượng theo thứ tự cụ thể trong mảng vì một mảng đảm bảo thứ tự của chúng. Vì vậy, tôi đã làm điều này.known number of items into an array, into specific positions, as they come off of an "associative array" (i.e. an object) which by definition is not guaranteed to be in a sorted order. I wanted the resulting array to be an array of objects, but the objects to be in a specific order in the array since an array guarantees their order. So I did this.

Đầu tiên là đối tượng nguồn, chuỗi JSONB được lấy từ PostgreSQL. Tôi muốn có nó được sắp xếp theo thuộc tính "thứ tự" trong mỗi đối tượng con.

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

// => arr == [ 'A', 'B', 'C', 'D', 'E' ]
8

Vì số lượng nút trong đối tượng được biết đến, trước tiên tôi tạo một mảng có độ dài được chỉ định:

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

// => arr == [ 'A', 'B', 'C', 'D', 'E' ]
9

Và sau đó lặp lại đối tượng, đặt các đối tượng tạm thời mới được tạo vào các vị trí mong muốn trong mảng mà không thực sự "sắp xếp" đang diễn ra.

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, newItem) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted item
  newItem,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10)

console.log(result)
// [1, 10, 2, 3, 4, 5]
0

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Đã trả lời ngày 4 tháng 12 năm 2015 lúc 18:36Dec 4, 2015 at 18:36

VillevilleVille

3.9582 Huy hiệu vàng36 Huy hiệu bạc37 Huy hiệu đồng2 gold badges36 silver badges37 bronze badges

0

Chèn bất biến

Sử dụng phương thức

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, ...newItems) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted items
  ...newItems,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10, 20)

console.log(result)
// [1, 10, 20, 2, 3, 4, 5]
6 chắc chắn là câu trả lời tốt nhất nếu bạn cần chèn vào một mảng tại chỗ.

Tuy nhiên, nếu bạn đang tìm kiếm một chức năng bất biến trả về một mảng được cập nhật mới thay vì làm biến đổi mảng gốc khi chèn, bạn có thể sử dụng chức năng sau.

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, newItem) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted item
  newItem,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10)

console.log(result)
// [1, 10, 2, 3, 4, 5]
1

Lưu ý: Đây là một cách thực hiện trước es6, vì vậy nó hoạt động cho cả trình duyệt cũ hơn và mới hơn. This is a pre-ES6 way of doing it, so it works for both older and newer browsers.

Nếu bạn đang sử dụng ES6 thì bạn cũng có thể thử các tham số REST; Xem câu trả lời này.

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Đã trả lời ngày 12 tháng 9 năm 2020 lúc 6:37Sep 12, 2020 at 6:37

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Kabirbaidhyakabirbaidhyakabirbaidhya

3.0743 huy hiệu vàng34 Huy hiệu bạc53 Huy hiệu đồng3 gold badges34 silver badges53 bronze badges

Bất cứ ai vẫn gặp vấn đề với cái này và đã thử tất cả các tùy chọn trong các câu trả lời trước đó và không bao giờ nhận được nó. Tôi đang chia sẻ giải pháp của mình và điều này là để xem xét rằng bạn không muốn nêu rõ các thuộc tính của đối tượng của bạn so với mảng.

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, newItem) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted item
  newItem,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10)

console.log(result)
// [1, 10, 2, 3, 4, 5]
2

Đây là sự kết hợp của việc lặp lại mảng tham chiếu và so sánh nó với đối tượng bạn muốn kiểm tra, chuyển đổi cả hai thành một chuỗi và sau đó lặp lại nếu nó khớp với nhau. Sau đó, bạn chỉ có thể đếm. Điều này có thể được cải thiện, nhưng đây là nơi tôi giải quyết.

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Đã trả lời ngày 6 tháng 12 năm 2018 lúc 4:26Dec 6, 2018 at 4:26

ClydeclydeClyde

7228 Huy hiệu bạc19 Huy hiệu đồng8 silver badges19 bronze badges

Lợi nhuận của phương pháp giảm như sau:

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, newItem) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted item
  newItem,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10)

console.log(result)
// [1, 10, 2, 3, 4, 5]
3

Vì vậy, theo cách này, chúng ta có thể trả về một mảng mới (sẽ là một cách chức năng tuyệt vời - tốt hơn nhiều so với sử dụng đẩy hoặc ghép) với phần tử được chèn vào chỉ mục và nếu chỉ mục lớn hơn chiều dài của mảng, nó sẽ được chèn cuối cùng.

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Đã trả lời ngày 12 tháng 1 năm 2019 lúc 17:04Jan 12, 2019 at 17:04

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Alejokoalejokoalejoko

8697 Huy hiệu bạc13 Huy hiệu Đồng7 silver badges13 bronze badges

Tôi đã thử điều này và nó đang hoạt động tốt!

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, newItem) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted item
  newItem,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10)

console.log(result)
// [1, 10, 2, 3, 4, 5]
4

Chỉ mục là vị trí mà bạn muốn chèn hoặc xóa phần tử.

0, tức là, tham số thứ hai, xác định số lượng phần tử khỏi chỉ mục sẽ được xóa.

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, ...newItems) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted items
  ...newItems,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10, 20)

console.log(result)
// [1, 10, 20, 2, 3, 4, 5]
8 chứa các mục mới mà bạn muốn thực hiện trong mảng. Nó có thể là một hoặc nhiều hơn một.

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, newItem) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted item
  newItem,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10)

console.log(result)
// [1, 10, 2, 3, 4, 5]
5

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Đã trả lời ngày 8 tháng 3 năm 2017 lúc 6:35Mar 8, 2017 at 6:35

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

PawanpawanPawan

5631 Huy hiệu vàng5 Huy hiệu bạc19 Huy hiệu đồng1 gold badge5 silver badges19 bronze badges

1

Tôi phải đồng ý với câu trả lời của Redu vì splice () chắc chắn có một chút giao diện khó hiểu. Và phản hồi được đưa ra bởi cdbajorin rằng "nó chỉ trả về một mảng trống khi tham số thứ hai là 0. Nếu nó lớn hơn 0, nó sẽ trả về các mục bị xóa khỏi mảng", trong khi chính xác, chứng minh điểm.

Mục đích của chức năng là liên kết hoặc như đã nói trước đó bởi Jakob Keller, "tham gia hoặc kết nối, cũng để thay đổi.

Bạn có một mảng được thiết lập mà bạn đang thay đổi sẽ liên quan đến việc thêm hoặc loại bỏ các yếu tố .... "Cho rằng, giá trị trả lại của các yếu tố, nếu có, đã bị loại bỏ là khó xử nhất. Và tôi đồng ý 100% rằng điều này Phương pháp có thể phù hợp hơn với việc xâu chuỗi nếu nó đã trả lại những gì có vẻ tự nhiên, một mảng mới với các yếu tố được ghép thêm. Sau đó, bạn có thể làm những việc như ["19", "17"]. Splice (1,0, "18" ) .Join ("...") hoặc bất cứ điều gì bạn thích với mảng trả về.

Thực tế là nó trả lại những gì đã được gỡ bỏ chỉ là loại IMHO vô nghĩa. Nếu ý định của phương pháp là "cắt ra một tập hợp các yếu tố" và đó là ý định duy nhất của nó, có thể. Có vẻ như nếu tôi không biết những gì tôi đã cắt ra, có lẽ tôi có rất ít lý do để cắt bỏ các yếu tố đó, phải không?

Sẽ tốt hơn nếu nó hoạt động như concat (), map (), giảm (), lát (), v.v. trong đó một mảng mới được tạo từ mảng hiện có thay vì biến đổi mảng hiện có. Đó là tất cả các chuỗi, và đó là một vấn đề quan trọng. Nó khá phổ biến để chuỗi thao tác mảng.

Có vẻ như ngôn ngữ cần phải đi một hoặc hướng khác và cố gắng gắn bó với nó càng nhiều càng tốt. JavaScript là chức năng và ít khai báo hơn, nó có vẻ như là một sai lệch kỳ lạ so với tiêu chuẩn.

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Đã trả lời ngày 18 tháng 7 năm 2019 lúc 17:38Jul 18, 2019 at 17:38

meemmeemmeem

1842 Huy hiệu bạc4 Huy hiệu đồng2 silver badges4 bronze badges

Tôi thích một chút an toàn và tôi sử dụng điều này:

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, newItem) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted item
  newItem,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10)

console.log(result)
// [1, 10, 2, 3, 4, 5]
6

McKinley

7191 Huy hiệu vàng3 Huy hiệu bạc14 Huy hiệu đồng1 gold badge3 silver badges14 bronze badges

Đã trả lời ngày 8 tháng 10 năm 2020 lúc 22:26Oct 8, 2020 at 22:26

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

2

Đây là một chức năng hoạt động mà tôi sử dụng trong một trong các ứng dụng của mình.

Điều này kiểm tra nếu một mục tồn tại:

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, newItem) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted item
  newItem,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10)

console.log(result)
// [1, 10, 2, 3, 4, 5]
7

Và sau đó tôi gọi nó dưới đây.

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, newItem) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted item
  newItem,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10)

console.log(result)
// [1, 10, 2, 3, 4, 5]
8

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Đã trả lời ngày 16 tháng 2 năm 2019 lúc 22:48Feb 16, 2019 at 22:48

1

Bạn có thể làm điều đó với Array.Splice:

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, newItem) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted item
  newItem,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10)

console.log(result)
// [1, 10, 2, 3, 4, 5]
9

Tài liệu của Array.Slice

Đã trả lời ngày 21 tháng 8 lúc 11:02Aug 21 at 11:02

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

De Bonheurde BonheurDe Bonheur

6087 Huy hiệu bạc11 Huy hiệu đồng7 silver badges11 bronze badges

Dưới đây là cách hiện đại (Chức năng TypeScript):

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, ...newItems) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted items
  ...newItems,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10, 20)

console.log(result)
// [1, 10, 20, 2, 3, 4, 5]
0

Đã trả lời ngày 13 tháng 12 năm 2021 lúc 10:39Dec 13, 2021 at 10:39

Baptiste Arnaudbaptiste ArnaudBaptiste Arnaud

2.3203 Huy hiệu vàng21 Huy hiệu bạc52 Huy hiệu Đồng3 gold badges21 silver badges52 bronze badges

Tôi làm như vậy:

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, ...newItems) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted items
  ...newItems,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10, 20)

console.log(result)
// [1, 10, 20, 2, 3, 4, 5]
1

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, ...newItems) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted items
  ...newItems,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10, 20)

console.log(result)
// [1, 10, 20, 2, 3, 4, 5]
2

Đã trả lời ngày 14 tháng 1 lúc 1:42Jan 14 at 1:42

Bmaggibmaggibmaggi

2.7781 Huy hiệu vàng18 Huy hiệu bạc16 Huy hiệu đồng1 gold badge18 silver badges16 bronze badges

Đây là một chức năng đơn giản hỗ trợ chèn nhiều giá trị cùng một lúc:

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, ...newItems) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted items
  ...newItems,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10, 20)

console.log(result)
// [1, 10, 20, 2, 3, 4, 5]
3

Ví dụ sử dụng:

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, ...newItems) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted items
  ...newItems,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10, 20)

console.log(result)
// [1, 10, 20, 2, 3, 4, 5]
4

Đã trả lời ngày 13 tháng 3 lúc 8:29Mar 13 at 8:29

Hướng dẫn javascript push object into array at index - javascript đẩy đối tượng vào mảng tại chỉ mục

Pikamander2Pikamander2Pikamander2

6.4913 Huy hiệu vàng43 Huy hiệu bạc64 Huy hiệu đồng3 gold badges43 silver badges64 bronze badges

1

const items = [1, 2, 3, 4, 5]

const insert = (arr, index, ...newItems) => [
  // part of the array before the specified index
  ...arr.slice(0, index),
  // inserted items
  ...newItems,
  // part of the array after the specified index
  ...arr.slice(index)
]

const result = insert(items, 1, 10, 20)

console.log(result)
// [1, 10, 20, 2, 3, 4, 5]
5

Đã trả lời ngày 24 tháng 7 lúc 4:19Jul 24 at 4:19

1

Làm thế nào để bạn đẩy một mục vào một mảng ở một JavaScript chỉ mục cụ thể?

Bạn muốn thêm nó một cách rõ ràng tại một nơi cụ thể của mảng. Nơi đó được gọi là chỉ số. Các chỉ mục mảng bắt đầu từ 0, vì vậy nếu bạn muốn thêm mục trước, bạn sẽ sử dụng INDEX 0, ở vị trí thứ hai, chỉ mục là 1, v.v. Để thực hiện thao tác này, bạn sẽ sử dụng phương thức splice () của một mảng.use the splice() method of an array.

Làm thế nào để bạn đẩy một phần tử trong một mảng ở một chỉ mục cụ thể?

Không có phương pháp nào có sẵn trong đối tượng mảng để thêm một phần tử vào một chỉ mục cụ thể, nhưng chúng ta có thể sử dụng phương thức Splice đã có sẵn để đạt được điều này.Một mảng bắt đầu từ chỉ mục 0, vì vậy nếu chúng ta muốn thêm một phần tử làm phần tử đầu tiên của mảng, thì chỉ mục của phần tử là 0.use the already available splice method to achieve this. An array starts from index 0 , so if we want to add an element as the first element of the array, then the index of the element is 0.

Làm thế nào để bạn đẩy một đối tượng vào chỉ mục đầu tiên của một mảng?

Việc thêm các phần tử mới ở đầu mảng hiện có có thể được thực hiện bằng cách sử dụng phương thức mảng unShift ().Phương thức này tương tự như phương thức PUSH () nhưng nó thêm một phần tử ở đầu mảng.Array unshift() method. This method is similar to push() method but it adds an element at the beginning of the array.

Bạn có thể đẩy một đối tượng vào một mảng javascript không?

Phương thức Push () được sử dụng để thêm một hoặc nhiều phần tử vào cuối một mảng.Nó trả về độ dài mới của mảng được hình thành.Một đối tượng có thể được chèn bằng cách chuyển đối tượng dưới dạng tham số cho phương thức này.Do đó, đối tượng được thêm vào cuối mảng.An object can be inserted by passing the object as a parameter to this method. The object is hence added to the end of the array.