변환하는 방법 개체{}배열에[]키-값 쌍의에서 JavaScript
로 변환하고 싶 개체에 다음과 같다:
{"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
으로 배열의 키-값 쌍으로 다음과 같다:
[[1,5],[2,7],[3,0],[4,0]...].
나는 어떻게 변환하는 객체 배열의 키-값 쌍에서 JavaScript?
196
18
당신이 사용할 수 있
개체입니다.키()
지도()
이최선의 방법은 어떻게하는 것입니다:
화
항목이
다음과 같이 반환됩니다[key,value]
쌍으로,아스카를 요청합니다.또는,당신을 부를 수 있는
개체입니다.값(obj)
,는 것만 반환 값.의
객체입니다.항목이
기능을 반환하는 거의 정확한 출력은 당신이'다시 요청을 제외하고,키 문자열을 대신의 숫자가 있습니다.해야 하는 경우 사용할 수 있습니 맵 그 결과를 새로운 배열을 콜백 함수를 대체하는 키에 각 쌍으로 숫자를 강제한다.
내가 사용하는 기능 화살표 및
개체입니다.지정한 콜백 지도 위의 예제에서는 그래서 나는 그것을 유지할 수 있습에서 하나의 명령을 활용하여 사실
개체입니다.할당 객체를 반환되는 것에 할당하고,하나의 명령 기능 화살표's 는 반환 값의 결과이다.이것은 동등하다:
으로 언급@TravisClarke 의견에,지도 기능을 수 있습을 단축하기:
그러나 만드는 새로운 배열에 대한 각각의 키-값의 쌍을 변경하는 대신은 기존의 배열에 따라서,두배로 하는 금액의 키-값 쌍 배열 생성됩니다. 원하는 항목 배열은 여전히 접근할 수 있는,그리고 그 항목을 가비지 수집되지 않습니다.
지금도 우리를 사용하여 방법 여전히 사용하는 두 가지 배열을 보유하는 키-값 쌍(입력 및 출력을 배열)의 총 수는 배열에만 변경하여 하나입니다. 입력 및 출력을 배열지't 이 실제로 가득한 배열하지만,오히려 참기 어레이 및 그 참을 무시할 공간 메모리에 있습니다.
수정하여 각각의 키-값 쌍 장소에서 결과에서는 무시할 수량 메모리의 성장,그러나 필요로 입력하는 몇 가지 이상의 문자를 입력하는 것입니다. 새로 만드는 배열에 각 키에 대한 값 쌍으로 결과의 양을 두 배로 메모리가 필요하지만,필요로 입력하는 몇 가지 적은 자입니다.
당신이 갈 수 있다 한 단계 더 나아가고 제거하는 성장이 모두 항목을 수정하여 편에서는 장소에 매핑하는 대신 그것은 새로운 배열:
아직 다른 솔루션은 경우에도
개체입니다.항목
지't work for you.정리해 보면 어떤 이들의 대답에 지금 2018 년,어디 ES6 표준입니다.
시작과 함께 개체:
*맹목적으로 점점에 값의 배열을,상관하지 않습의 열쇠:
*간단을 받고 쌍에 배열:
*이름으로 이전하지만,숫자 열쇠를 가진 각 쌍에:
*를 사용하는 개체 속성이 핵심으로 새로운 배열(을 만들 수 있습파스 배):
이 마지막 방법,그것은 또한 수 reorganize 배열의 순서에 따라 값의 키를 사용합니다. 때로는이 될 수 있고 원하는 동작(때로는지't). 하지만 활용하는 값에서 인덱싱이 올바른 배열의 슬롯,필수와 사소한 검색을 할니다.
*지도 대신 배열
마지막으로(지 않는 부분이 원래 질문,하지만 완성도),필요할 경우 쉽게 검색 키를 사용하거나 값지만,당신이't 원하는 어레이 스파 스,no 중복 없이 순서없이 필요로 변환하여 숫자 키(도 액세스할 수 있는 아주 복잡한 열쇠),다음 array(또는 개체)은 당신이 필요하지 않습니다. 나는 것입니다
하는 것이 좋습지도
를 대신:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map
사용`개체입니다.키과
배열#map
방법이 있습니다.Ecmascript6,
[바이올린][1]
사[
Object.entries
](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/entries 는)각 요소의 개체키&값이
형식,다음도
들을 통해 다음과 같다:하지만,당신은 특정 키에있을 것입진행 순서할 수 있습 사용[
Object.values
](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Object/values 고)[Array#map
](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/map 이)다음과 같은 것이 가능합니다.를 사용하는 경우 lodash 을 수 있었다,다음과 같이 간단합니다:
와 lodash 외에도 대답이 제공하는 위도 할 수 있어 키에서 출력을 배열입니다.
체에서 키 출력을 배열
대:
는 경우 obj 은 다음과 같다:
그 배열 될 것이다:
객체와 키에서 출력을 배열
만약 당신이 쓰는 대신('장르'문자열을 선택):
당신을 얻을 것이다:
ES6(ES2015)구현을 사용하여 설정
중 하나를 사용할 수 있습니다 배열입니다.부터()산 구문
배열입니다.부터()예
스프레드는 구문 예
사용대
우리는 우리를 변경할 수 있습 번호 문자열로 입력한 키를 아래와 같다:
재귀적 객체로 변환하여 배열
이는 가장 간단한 솔루션을 사용하
개체입니다.항목()
당신이 사용할 수 있_.castArray(obj).
예제:
_.castArray({'a':1}); //=>[{'a':1}]