Автор оригинала: FreeCodeCamp Community Member.
Этот заголовок мог быть «как не запутаться между сплей и средой JavaScript», потому что я никогда не могу вспомнить разницу между двумя.
Поэтому я надеюсь, что этот трюк поможет обои, а вы в будущем:
S (p) lice = Slice + (p) => Slice + in (p) lace
Array.prototype.slice ()
Array.Prototypee.slice () используется для нарезки массива из Начать
Укажите на конец
точка, исключая конец
Отказ
Как следует из названия, он используется для среза элементов из массива. Но в отличие от нарезки торта, нарезка массива не вырезает фактический массив, но держит его немодифицированным (бесконечный пирог!).
arr.slice(start, [end])
Правила
- Новый массив возвращен, и исходный массив немодифицирован.
- Если
конец
опущен, конец становится концом (последний элемент) массива. - Если
Начать
-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, ...])
Правила
- Операции выполняются на месте.
- Массив возвращается с удаленными элементами.
- Если
Начать
-ve, элементы подсчитываются с конца. - Если
Deletecount
опущен, элементы до конца массива не удаляются. - Если элементы для вставки такие как
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 от меня? Подпишитесь на мою рассылку. или Подпишись на меня в Твиттере