splice trong javascript

The splice() method of Array instances changes the contents of an array by removing or replacing existing elements and/or adding new elements in place.

To create a new array with a segment removed and/or replaced without mutating the original array, use toSpliced(). To access part of an array without modifying it, see slice().

Bạn đang xem: splice trong javascript

Try it

Syntax

splice(start)
splice(start, deleteCount)
splice(start, deleteCount, item1)
splice(start, deleteCount, item1, item2)
splice(start, deleteCount, item1, item2, /* …, */ itemN)

Parameters

start

Zero-based index at which lớn start changing the array, converted lớn an integer.

  • Negative index counts back from the kết thúc of the array — if start < 0, start + array.length is used.
  • If start < -array.length, 0 is used.
  • If start >= array.length, no element will be deleted, but the method will behave as an adding function, adding as many elements as provided.
  • If start is omitted (and splice() is called with no arguments), nothing is deleted. This is different from passing undefined, which is converted lớn 0.
deleteCount Optional

An integer indicating the number of elements in the array lớn remove from start.

If deleteCount is omitted, or if its value is greater phàn nàn or equal lớn the number of elements after the position specified by start, then all the elements from start lớn the kết thúc of the array will be deleted. However, if you wish lớn pass any itemN parameter, you should pass Infinity as deleteCount lớn delete all elements after start, because an explicit undefined gets converted lớn 0.

If deleteCount is 0 or negative, no elements are removed. In this case, you should specify at least one new element (see below).

item1, …, itemN Optional

The elements lớn add lớn the array, beginning from start.

If you vì thế not specify any elements, splice() will only remove elements from the array.

Return value

An array containing the deleted elements.

Xem thêm: tranh tô màu bông hoa

If only one element is removed, an array of one element is returned.

If no elements are removed, an empty array is returned.

Description

The splice() method is a mutating method. It may change the nội dung of this. If the specified number of elements lớn insert differs from the number of elements being removed, the array's length will be changed as well. At the same time, it uses species lớn create a new array instance lớn be returned.

If the deleted portion is sparse, the array returned by splice() is sparse as well, with those corresponding indices being empty slots.

The splice() method is generic. It only expects the this value lớn have a length property and integer-keyed properties. Although strings are also array-like, this method is not suitable lớn be applied on them, as strings are immutable.

Xem thêm: học phí trường đại học nguyễn tất thành

Examples

Remove 0 (zero) elements before index 2, and insert "drum"

const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(2, 0, "drum");

// myFish is ["angel", "clown", "drum", "mandarin", "sturgeon"]
// removed is [], no elements removed

Remove 0 (zero) elements before index 2, and insert "drum" and "guitar"

const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(2, 0, "drum", "guitar");

// myFish is ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"]
// removed is [], no elements removed

Remove 1 element at index 3

const myFish = ["angel", "clown", "drum", "mandarin", "sturgeon"];
const removed = myFish.splice(3, 1);

// myFish is ["angel", "clown", "drum", "sturgeon"]
// removed is ["mandarin"]

Remove 1 element at index 2, and insert "trumpet"

const myFish = ["angel", "clown", "drum", "sturgeon"];
const removed = myFish.splice(2, 1, "trumpet");

// myFish is ["angel", "clown", "trumpet", "sturgeon"]
// removed is ["drum"]

Remove 2 elements from index 0, and insert "parrot", "anemone" and "blue"

const myFish = ["angel", "clown", "trumpet", "sturgeon"];
const removed = myFish.splice(0, 2, "parrot", "anemone", "blue");

// myFish is ["parrot", "anemone", "blue", "trumpet", "sturgeon"]
// removed is ["angel", "clown"]

Remove 2 elements, starting from index 2

const myFish = ["parrot", "anemone", "blue", "trumpet", "sturgeon"];
const removed = myFish.splice(2, 2);

// myFish is ["parrot", "anemone", "sturgeon"]
// removed is ["blue", "trumpet"]

Remove 1 element from index -2

const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(-2, 1);

// myFish is ["angel", "clown", "sturgeon"]
// removed is ["mandarin"]

Remove all elements, starting from index 2

const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(2);

// myFish is ["angel", "clown"]
// removed is ["mandarin", "sturgeon"]

Using splice() on sparse arrays

The splice() method preserves the array's sparseness.

const arr = [1, , 3, 4, , 6];
console.log(arr.splice(1, 2)); // [empty, 3]
console.log(arr); // [1, 4, empty, 6]

Calling splice() on non-array objects

The splice() method reads the length property of this. It then updates the integer-keyed properties and the length property as needed.

const arrayLike = {
  length: 3,
  unrelated: "foo",
  0: 5,
  2: 4,
};
console.log(Array.prototype.splice.call(arrayLike, 0, 1, 2, 3));
// [ 5 ]
console.log(arrayLike);
// { '0': 2, '1': 3, '3': 4, length: 4, unrelated: 'foo' }

Specifications

Specification
ECMAScript Language Specification
# sec-array.prototype.splice

Browser compatibility

BCD tables only load in the browser

See also