Возвращает новый массив с первым и последним элементом переданного массива

#javascript #arrays

#javascript #массивы

Вопрос:

Я не уверен, чего мне не хватает. Требуется, чтобы новый массив возвращал первый и последний элемент переданного массива.

 var firstAndLast = function(array){

  var newArray = new Array();
  newArray [0] = array[0]
  newArray [1] = array[3]
  return plate;
}

For Example:
var array = ['one', 3, 'cool', 4];
firstAndLast(array); // returns ['one', 4]
  

Ответ №1:

Вам нужно получить доступ к первому и последнему элементу и вернуть его в виде массива. Я не уверен, откуда plate берется, но в целом ваша функция «правильная» в том смысле, что вы создаете новый массив и устанавливаете первый и второй элементы в первый и последний элементы переданного массива. Вам просто нужно вернуться newArray .

Но что, если 4-й элемент не является последним в массиве? Тогда вам нужно будет сделать его более общим:

 var array = ['one', 3, 'cool', 4];

var firstAndLast = function(arr) {
  return [arr[0], arr[arr.length - 1]]; //No need for new Array(), and you can just assign items in positions inline
}

console.log(firstAndLast(array));  

Приведенный выше код сокращает функцию до 3 строк, поскольку он возвращает литерал массива с первым элементом as arr[0] , первым элементом переданного массива. Второй элемент arr[arr.length - 1] , который является последним элементом. Рассмотрим это:

 [1, 2, 3, 4, 5]
  

Длина в настоящее время равна 5, и доступ к последнему элементу осуществляется arr[4] . Теперь просто вычтите единицу из длины, чтобы получить 4, и получите доступ к последнему элементу. arr[arr.length - 1] в этом случае это даст 5 результат.