Рубрики
Без рубрики

JavaScript STRICE SLICE VS SPLICE: разница, объясненная торт

Этот заголовок мог быть «как не запутаться между сплей и средой JavaScript», потому что я никогда не могу вспомнить разницу между двумя. Так что я надеюсь, что этот трюк поможет обои, а вам в будущем: S (P) + (P) => Slice + In

Автор оригинала: FreeCodeCamp Community Member.

Этот заголовок мог быть «как не запутаться между сплей и средой JavaScript», потому что я никогда не могу вспомнить разницу между двумя.

Поэтому я надеюсь, что этот трюк поможет обои, а вы в будущем:

S (p) lice = Slice + (p) => Slice + in (p) lace

Array.prototype.slice ()

Array.Prototypee.slice () используется для нарезки массива из Начать Укажите на конец точка, исключая конец Отказ

Как следует из названия, он используется для среза элементов из массива. Но в отличие от нарезки торта, нарезка массива не вырезает фактический массив, но держит его немодифицированным (бесконечный пирог!).

arr.slice(start, [end])

Правила

  1. Новый массив возвращен, и исходный массив немодифицирован.
  2. Если конец опущен, конец становится концом (последний элемент) массива.
  3. Если Начать -ve, элементы подсчитываются с конца.
const infiniteCake = ['?','?','?','?','?','?']

let myPieceOfCake = infiniteCake.slice(0,1) // ['?']
let yourDoublePieceOfCake = infiniteCake.slice(0,2) // (2) ["?", "?"]
console.log(infiniteCake) //['?','?','?','?','?','?']

Как вы видите, Inifintecake немодифицируется.

Array.Prototype.Splice ()

Splice делает операции на месте , что означает, что это изменяет существующий массив.

В дополнение к удалению элементов, Splice также используется для добавления элементов. Splice – это реальный торт мира «Ломтик»:

arr.splice(start, [deleteCount, itemToInsert1, itemToInsert2, ...])

Правила

  1. Операции выполняются на месте.
  2. Массив возвращается с удаленными элементами.
  3. Если Начать -ve, элементы подсчитываются с конца.
  4. Если Deletecount опущен, элементы до конца массива не удаляются.
  5. Если элементы для вставки такие как itemtoinsert1 опущены, элементы удаляются только.
const cake = ['?','?','?','?','?','?'];
let myPieceOfCake = cake.splice(0, 1) // ["?"]
console.log(cake) // (5) ["?", "?", "?", "?", "?"]

let yourDoublePieceOfCake = cake.splice(0,2) //(2) ["?", "?"]
console.log(cake) //(3) ["?", "?", "?"]

Здесь торт изменяется и уменьшает размер.

Примеры кода

const myArray  = [1,2,3,4,5,6,7] 

console.log(myArray.slice(0))       // [ 1, 2, 3, 4, 5, 6, 7 ]
console.log(myArray.slice(0, 1))    // [ 1 ]
console.log(myArray.slice(1))       // [ 2, 3, 4, 5, 6, 7 ]
console.log(myArray.slice(5))       // [ 6, 7 ]
console.log(myArray.slice(-1))      // [ 7 ]
console.log(myArray)                // [ 1, 2, 3, 4, 5, 6, 7 ]



const secondArray = [10, 20, 30, 40, 50]

console.log(secondArray.splice(0, 1))   // [ 10 ] : deletes 1 element starting at index 0
console.log(secondArray.splice(-2, 1))  // [ 40 ] : deletes 1 element starting at index end-2 
console.log(secondArray)                // [ 20, 30, 50 ]
console.log(secondArray.splice(0))      // [ 20, 30, 50 ] : deletes all elements starting at index 0
console.log(secondArray)                // []
console.log(secondArray.splice(2, 0, 60, 70)) // [] : deletes 0 elements starting at index 2 (doesn't exist so defaults to 0) and then inserts 60, 70
console.log(secondArray)                // [60, 70]

TL; доктор

Использовать сращивание Если оригинальный массив должен быть изменен, или элементы необходимо добавить.

Использовать ломтик Для удаления элементов, если оригинальный массив не должен быть изменен.

Заинтересованы в большем количестве учебных пособий и JSBYTES от меня? Подпишитесь на мою рассылку. или Подпишись на меня в Твиттере