파이썬에서 dict.items
은 키와 dict
의 값을 모두 포함하는 튜플 목록을 반환합니다. Javascript에는 튜플이 없으므로 중첩 배열이어야합니다.
작은 파이썬 코드를 사용하여 차이점을 보여 주시면 죄송합니다.
>>> {1:2, 2:3}.items()
[(1, 2), (2, 3)]
>>> {1:2, 2:3}.values()
[2, 3]
내가 허용 대답 파이썬 함수 dict.values
의 동등 개체 값의 배열을 반환 참조. 요청되는 내용은 dict.items
입니다. 이 작업을 수행하려면 2 개의 요소 배열로 중첩 된 배열을 반복하고 빌드하십시오.
function items(obj){
var ret = [];
for(v in obj){
ret.push(Object.freeze([v, obj[v]]));
}
return Object.freeze(ret);
}
나는 현학적하고 파이썬 튜플의 불변성을 모방, 반환 값이 변경되어서는 안된다는 적용 할
Object.freeze
에 넣어. 분명히 그것을 꺼내면 여전히 작동합니다.
items
의 목적을 다소 어기면 연관성보다는 선형으로 객체를 반복 할 때 사용되며 연관 배열에서 각 요소를 찾기 위해 해시 값을 계산하지 않아야한다는 점에 유의해야합니다 . 신경 쓰이는 작은 물체의 경우 큰 물체의 경우 속도가 느려지고 자바 스크립트에서 원하는 것을 수행하는 데 더 관용적 인 방법이있을 수 있습니다.
또 다른 새로운 방법은 Object.entries()을 사용하여 원하는대로 정확하게 수행하는 것입니다.
Object.entries({1:1, 2:2, 3:3})
.forEach(function(v){
console.log(v)
});
지원은 설명서에 언급 된 브라우저 버전으로 제한됩니다.
나는 아마도 그 배열을 정렬 할 수 있도록 _reason_을 추가해야합니다. (키는 그냥 uid입니다.) 그래서 "associativ 배열의 항목을 정렬하는 방법"을 물어야 했는지도 모릅니다. –
질문이 잘못되었습니다. 파이썬의'dict.items()'는 (키, 값) 튜플리스트를 반환합니다. retval 예제는'dict.values ()'에 해당합니다. –