2013-12-09 2 views
3
var myarray = []; 

var result1 = myarray[0]; 
var result2 = myarray[1]; 
var result3 ....etc... 

Выбор в первую очередь легко, потому что это всего лишь 0. Как поместить последний в var? Похоже, такой простой вопрос, но я, должно быть, ошибочно ошибался, потому что я не мог найти ответ, который сработал.Как выбрать последнее в массиве?

ответ

9
var last = myarray[myarray.length - 1]; 

Documentation

+4

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/length –

+0

@KevinB Да, еще лучше –

+1

Как насчет проверки, что массив пуст первым? –

1

Попробуйте это:

var l= myarray[myarray.length - 1]; 

Проверить это MDN.

1
var lastelement = myarray[myarray.length - 1] 
+0

Кроме того, это дубликат: http://stackoverflow.com/questions/3216013/get-the-last-item-in-an-array – polkadotcadaver

1

Одним из способов было бы сделать что-то вроде этого

var lastElement = myArray[myarray.length-1] 

Не overthink. Массивы могут индексироваться 0 в javascript, но это означает, что последний индекс должен быть длиной массива -1.

1

Просто это:

var lastResult = myarray[myarray.length - 1]; 

Вы можете создать прототип, чтобы сделать это более простым. Например:

if (!Array.prototype.last){ 
    Array.prototype.last = function(){ 
    return this[this.length - 1]; 
    }; 
}; 

и чем использовать

myarray.last(); 
+0

Расширение родных прототипов - это плохая практика в соответствии с mdn: https: // разработчик. mozilla.org/en-US/docs/Web/JavaScript/Guide/Inheritance_and_the_prototype_chain#Bad_practice.3A_Extension_of_native_prototypes Вам не нужно, когда вы это делаете: 'last = lastInArray.call (arr, arr);' все еще вы используете метод ' this' – HMR

3

myArray.length возвращает длину массива и как элементы начали с 0 вычитая одно из него даст индекс последнего элемента

var lastresult = myarray[myarray.length - 1]; 
1

Вы можете использовать метод прототипа массива .pop(), но это удалит последний элемент из массива:

var lastElement = myarray.pop(); 

Или обернуть массив в объект JQ:

var lastElement = $(myarray).get(-1); 
+0

Учитывая, что вопрос ничего не сказал об изменении содержимого 'myarray', этот ответ действительно неверен. – admdrew

+1

Получение («выбор») не должно вызывать побочных эффектов. –

+1

@admdrew извините, мой плохой, неверный вопрос –

0

Я мог бы быть неправильно об этом, так что, возможно, кто-то может сказать мне, если я правильно или неправильно, но вы не можете просто сделать :

var last = myArray[-1] 

?

EDIT: Я ошибаюсь. Игнорируй меня.

Кроме того, из любопытства, было бы быстрее использовать

var lastelement = myarray[myarray.length - 1]; 

или

var lastelement = myarray.reverse[0]; 

?

+3

'так, возможно, кто-то может сказать мне, прав я или нет. Что происходит, когда вы сами это пытаетесь? :) – admdrew

+1

Это вернет 'undefined', поскольку' -1' не является допустимым индексом массива JavaScript. –

+0

Хм, просто протестировал его. Я получаю «неопределенный». Я действительно думал, что это возможно. –

Смежные вопросы