자바 스크립트 개체의 마지막 항목 가져 오기
다음과 같은 개체가있는 경우 :
{ 'a' : 'apple', 'b' : 'banana', 'c' : 'carrot' }
객체를 반복하는 것 외에 목록이 'c'까지 올라간다는 것을 미리 모르는 경우 객체의 마지막 항목을 가져올 수있는 방법이 'carrot'
있습니까 (예 :) ?
아니요. JSON 및 대부분의 다른 키-값 데이터 구조에서는 순서가 보장되지 않으므로 마지막 항목은 때때로있을 수 carrot
있고 다른 때는 그럴 수도 있습니다 banana
. 주문에 의존 해야하는 경우 가장 좋은 방법은 어레이를 사용하는 것입니다. 키-값 데이터 구조의 힘은 객체 keys
의 nth
항목 을 가져올 수있는 것이 아니라으로 값에 액세스하는 데 있습니다.
예,를 사용하는 방법이 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"
Javascript의 개체 속성 순서에 관해서는 다음 답변에 연결하겠습니다.
구체적으로 특별히:
ECMAScript의 모든 최신 구현은 정의 된 순서대로 객체 속성을 반복합니다.
따라서 여기에있는 다른 모든 답변은 정확합니다. 객체 속성에 대한 공식적인 보장 된 순서는 없습니다. 그러나 실제로는 (공식적으로 지정된 행동조차도 자연스럽게 망칠 수있는 버그를 제외하고) 있습니다.
또한 객체 속성의 사실상 열거 순서는 향후 EMCAScript 사양에 성문화 될 것입니다.
그래도 현재로서는이 문제에 대한 코드를 작성하지 않을 것입니다. 대부분 개체 속성 순서를 처리하는 데 도움이되는 기본 제공 도구가 없기 때문입니다. 직접 작성할 수도 있지만 결국에는 객체의 각 속성을 반복하여 위치를 결정합니다.
귀하의 질문에 대한 대답은 No 이므로 객체를 반복하는 것 외에는 방법이 없습니다.
순서가 중요하다면 객체 리터럴이 아닌 배열을 사용하십시오.
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"
자바 스크립트의지도 객체 . 벌써 3 살 정도 됐어요. 이 맵 데이터 구조는 항목이 삽입되는 순서를 유지합니다. 이 마지막 항목을 검색하면 실제로 최신 항목이 맵에 삽입됩니다.
Let obj
be your object. Exec:
(_ => _[Object.keys(_).pop()])( obj )
if you mean get the last key alphabetically, you can (garanteed) :
var obj = { 'a' : 'apple', 'b' : 'banana', 'c' : 'carrot' };
var keys = Object.keys(obj);
keys.sort();
var lastkey = keys.pop() // c
var lastvalue = obj[lastkey] // 'carrot'
참고URL : https://stackoverflow.com/questions/4317456/getting-the-last-item-in-a-javascript-object
'code' 카테고리의 다른 글
NSArray를 NSData로 변환하는 방법? (0) | 2020.10.06 |
---|---|
presentModalViewController를 사용하여 투명한보기를 만드는 방법 (0) | 2020.10.06 |
SQL Server 실행 포트를 찾는 방법은 무엇입니까? (0) | 2020.10.06 |
EditText imeOptions를 actionNext로 설정해도 효과가 없습니다. (0) | 2020.10.06 |
sed가 일치하지 않는 줄을 무시하도록 함 (0) | 2020.10.06 |