WedX - журнал о программировании и компьютерных науках

Извлечение последних n элементов из массива без нарушения исходного массива

Я хочу извлечь последние n элементов из массива без соединения

У меня есть массив, как показано ниже, я хочу получить последние 2 или n элементов из любого массива в новом массиве [33, 44]

[22, 55, 77, 88, 99, 22, 33, 44] 

Я попытался скопировать старый массив в новый массив, а затем выполнить соединение. Но я считаю, что должен быть какой-то другой лучший способ.

var arr = [22, 55, 77, 88, 99, 22, 33, 44] ;
var temp = [];
temp = arr;
temp.splice(-2);

Вышеприведенный код также удаляет последние 2 элемента из исходного массива arr;

Итак, как я могу просто извлечь последние n элементов из исходного массива, не превращая его в новую переменную

03.01.2019


Ответы:


1

Используйте slice() вместо splice():

Согласно документам:

Метод slice() возвращает неглубокую копию части массива в новый объект массива, выбранный от начала до конца (конец не включен). Исходный массив не будет изменен.

var arr = [22, 55, 77, 88, 99, 22, 33, 44] ;

var newArr = arr.slice(-2);

console.log(newArr);
console.log(arr);
.as-console-wrapper { max-height: 100% !important; top: 0; }

03.01.2019

2

Вы можете использовать Array#slice, что делает не изменять исходный массив.

var array = [22, 55, 77, 88, 99, 22, 33, 44];
    temp = array.slice(-2);

console.log(temp);
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }

03.01.2019

3

Вы можете создать поверхностную копию с помощью Array.from. а потом склеить.

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

const a = [22, 55, 77, 88, 99, 22, 33, 44];
console.log(Array.from(a).splice(-2));
console.log(a);

03.01.2019

4

Используйте Array.slice:

let arr = [0,1,2,3]
arr.slice(-2); // = [2,3]
arr; // = [0,1,2,3]
03.01.2019
Новые материалы

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


Для любых предложений по сайту: [email protected]