javascript - 在一个javascript对象中,获取最后一个项目

如果我有这样一个对象:


{ 'a' : 'apple', 'b' : 'banana', 'c' : 'carrot' }



除了循环通过对象,是否有一种方法获得对象中的最后一项,'carrot' )?

时间:

如果你需要依靠排序,你最好的选择是使用数组,key-value数据结构的功能在于通过它keys访问值,而不是获取对象的第几项项。

是的,有一个使用Object.keys(obj)的方法,解释 :


var fruitObject = { 'a' : 'apple', 'b' : 'banana', 'c' : 'carrot' };


Object.keys(fruitObject); // this returns all properties in an array ["a","b","c"]



如果要获取最后一个对象的值,可以执行以下操作:


fruitObject[Object.keys(fruitObject).length-1] //"carrot"




last = Object.keys(obj)[Object.keys(obj).length-1];



obj是你的对象


var myObj = {a: 1, b: 2, c: 3}, lastProperty;


for (lastProperty in myObj);


lastProperty;


//"c";



源:http://javascriptweblog.wordpress.com

使用ES6的解构赋值语法的解决方案:


var temp = { 'a' : 'apple', 'b' : 'banana', 'c' : 'carrot' };


var { [Object.keys(temp).pop()]: lastItem } = temp;


console.info(lastItem); //"carrot"

使用数组,而不是对象(如果有顺序)。


list = ['apple', 'banana', 'carrot'];



或者像这个


dict = {


 'a' : ['apple', 'awesome'],


 'b' : ['best friend']


};



甚至。 。


dict = [{letter:'a', list:['apple', 'awesome']},{letter:'b', list:['best friend']}];



dict的键根本不能保证是正确的。


JSArray = { 'a' : 'apple', 'b' : 'banana', 'c' : 'carrot' }; 


document.write(Object.keys(JSArray)[Object.keys(JSArray).length-1]);// writes 'c' 


document.write(JSArray[Object.keys(JSArray)[Object.keys(JSArray).length-1]]); // writes 'carrot'



你还可以使用Object.values()方法:


Object.values(fruitObject)[Object.values(fruitObject).length - 1]; //"carrot"



...