변환하는 방법 개체{}배열에[]키-값 쌍의에서 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?

해결책

당신이 사용할 수 있개체입니다.키()지도()

var obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
var result = Object.keys(obj).map(function(key) {
  return [Number(key), obj[key]];
});

console.log(result);
해설 (2)

최선의 방법은 어떻게하는 것입니다:

var obj ={"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10"‌​:0,"11":0,"12":0} 
Object.entries(obj);

항목이다음과 같이 반환됩니다[key,value]쌍으로,아스카를 요청합니다.

또는,당신을 부를 수 있는개체입니다.값(obj),는 것만 반환 값.

해설 (2)

개체입니다.항목()배열을 반환합니다 누구의 요소를 배열에 해당하는 열거 속성[key,value]쌍 찾을 직접 따라object. 주문의 특성을 같는 주어진에 의해 루프 전원 지역에 위치한 이 호텔의 값을 객체의 수 있습니다.

-https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries#Description

객체입니다.항목이기능을 반환하는 거의 정확한 출력은 당신이'다시 요청을 제외하고,키 문자열을 대신의 숫자가 있습니다.

const obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0};

console.log(Object.entries(obj));

해야 하는 경우 사용할 수 있습니 맵 그 결과를 새로운 배열을 콜백 함수를 대체하는 키에 각 쌍으로 숫자를 강제한다.

const obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0};

const toNumericPairs = input => {
    const entries = Object.entries(input);
    return entries.map(entry => Object.assign(entry, { 0: +entry[0] }));
}

console.log(toNumericPairs(obj));

내가 사용하는 기능 화살표 및개체입니다.지정한 콜백 지도 위의 예제에서는 그래서 나는 그것을 유지할 수 있습에서 하나의 명령을 활용하여 사실개체입니다.할당 객체를 반환되는 것에 할당하고,하나의 명령 기능 화살표's 는 반환 값의 결과이다.

이것은 동등하다:

entry => {
    entry[0] = +entry[0];
    return entry;
}

으로 언급@TravisClarke 의견에,지도 기능을 수 있습을 단축하기:

entry => [ +entry[0], entry[1] ]

그러나 만드는 새로운 배열에 대한 각각의 키-값의 쌍을 변경하는 대신은 기존의 배열에 따라서,두배로 하는 금액의 키-값 쌍 배열 생성됩니다. 원하는 항목 배열은 여전히 접근할 수 있는,그리고 그 항목을 가비지 수집되지 않습니다.

지금도 우리를 사용하여 방법 여전히 사용하는 두 가지 배열을 보유하는 키-값 쌍(입력 및 출력을 배열)의 총 수는 배열에만 변경하여 하나입니다. 입력 및 출력을 배열지't 이 실제로 가득한 배열하지만,오히려 참기 어레이 및 그 참을 무시할 공간 메모리에 있습니다.

수정하여 각각의 키-값 쌍 장소에서 결과에서는 무시할 수량 메모리의 성장,그러나 필요로 입력하는 몇 가지 이상의 문자를 입력하는 것입니다. 새로 만드는 배열에 각 키에 대한 값 쌍으로 결과의 양을 두 배로 메모리가 필요하지만,필요로 입력하는 몇 가지 적은 자입니다.

당신이 갈 수 있다 한 단계 더 나아가고 제거하는 성장이 모두 항목을 수정하여 편에서는 장소에 매핑하는 대신 그것은 새로운 배열:

const obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0};

const toNumericPairs = input => {
  const entries = Object.entries(obj);
  entries.forEach(entry => entry[0] = +entry[0]);
  return entries;
}

console.log(toNumericPairs(obj));
해설 (1)

아직 다른 솔루션은 경우에도개체입니다.항목지't work for you.

const obj = {
      '1': 29,
      '2': 42
    };
const arr = Array.from(Object.keys(obj), k=>[`${k}`, obj[k]]);
console.log(arr);
해설 (2)

정리해 보면 어떤 이들의 대답에 지금 2018 년,어디 ES6 표준입니다.

시작과 함께 개체:

let const={"1":9,"2":8,"3":7,"4":6,"5":5,"6":4,"7":3,"8":2,"9":1,"10":0,"12":5};

*맹목적으로 점점에 값의 배열을,상관하지 않습의 열쇠:

const obj={"1":9,"2":8,"3":7,"4":6,"5":5,"6":4,"7":3,"8":2,"9":1,"10":0,"12":5};
console.log(Object.values(obj));
//[9,8,7,6,5,4,3,2,1,0,5]

*간단을 받고 쌍에 배열:

const obj={"1":9,"2":8,"3":7,"4":6,"5":5,"6":4,"7":3,"8":2,"9":1,"10":0,"12":5};
console.log(Object.entries(obj));
//[["1",9],["2",8],["3",7],["4",6],["5",5],["6",4],["7",3],["8",2],["9",1],["10",0],["12",5]]

*이름으로 이전하지만,숫자 열쇠를 가진 각 쌍에:

const obj={"1":9,"2":8,"3":7,"4":6,"5":5,"6":4,"7":3,"8":2,"9":1,"10":0,"12":5};
console.log(Object.entries(obj).map(([k,v])=>[+k,v]));
//[[1,9],[2,8],[3,7],[4,6],[5,5],[6,4],[7,3],[8,2],[9,1],[10,0],[12,5]]

*를 사용하는 개체 속성이 핵심으로 새로운 배열(을 만들 수 있습파스 배):

const obj={"1":9,"2":8,"3":7,"4":6,"5":5,"6":4,"7":3,"8":2,"9":1,"10":0,"12":5};
console.log(Object.entries(obj).reduce((ini,[k,v])=>(ini[k]=v,ini),[]));
//[undefined,9,8,7,6,5,4,3,2,1,0,undefined,5]

이 마지막 방법,그것은 또한 수 reorganize 배열의 순서에 따라 값의 키를 사용합니다. 때로는이 될 수 있고 원하는 동작(때로는지't). 하지만 활용하는 값에서 인덱싱이 올바른 배열의 슬롯,필수와 사소한 검색을 할니다.

*지도 대신 배열

마지막으로(지 않는 부분이 원래 질문,하지만 완성도),필요할 경우 쉽게 검색 키를 사용하거나 값지만,당신이't 원하는 어레이 스파 스,no 중복 없이 순서없이 필요로 변환하여 숫자 키(도 액세스할 수 있는 아주 복잡한 열쇠),다음 array(또는 개체)은 당신이 필요하지 않습니다. 나는 것입니다하는 것이 좋습지도를 대신:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

let r=new Map(Object.entries(obj));
r.get("4"); //6
r.has(8); //true
해설 (3)

사용`개체입니다.키배열#map방법이 있습니다.

var obj = {
  "1": 5,
  "2": 7,
  "3": 0,
  "4": 0,
  "5": 0,
  "6": 0,
  "7": 0,
  "8": 0,
  "9": 0,
  "10": 0,
  "11": 0,
  "12": 0
};
// get all object property names
var res = Object.keys(obj)
  // iterate over them and generate the array
  .map(function(k) {
    // generate the array element 
    return [+k, obj[k]];
  });

console.log(res);
해설 (0)

Ecmascript6,

var obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0};

var res = Object.entries(obj);

console.log(res);

[바이올린][1]

해설 (2)

사[Object.entries](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/entries 는)각 요소의 개체키&값이형식,다음들을 통해 다음과 같다:

var obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}

var res = Object.entries(obj).map(([k, v]) => ([Number(k), v]));

console.log(res);

하지만,당신은 특정 키에있을 것입진행 순서할 수 있습 사용[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 이)다음과 같은 것이 가능합니다.

var obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}; 

                        // idx is the index, you can use any logic to increment it (starts from 0)
let result = Object.values(obj).map((e, idx) => ([++idx, e]));

console.log(result);
해설 (0)

를 사용하는 경우 lodash 을 수 있었다,다음과 같이 간단합니다:

var arr = _.values(obj);
해설 (0)

와 lodash 외에도 대답이 제공하는 위도 할 수 있어 키에서 출력을 배열입니다.

체에서 키 출력을 배열

대:

const array = _.values(obj);

는 경우 obj 은 다음과 같다:

{ “art”: { id: 1,  title: “aaaa” }, “fiction”: { id: 22,  title: “7777”} }

그 배열 될 것이다:

[ { id: 1, title: “aaaa” }, { id: 22, title: “7777” } ]

객체와 키에서 출력을 배열

만약 당신이 쓰는 대신('장르'문자열을 선택):

const array= _.map(obj, (val, id) => {
    return { ...val, genre: key };
  });

당신을 얻을 것이다:

[ 
  { id: 1, title: “aaaa” , genre: “art”}, 
  { id: 22, title: “7777”, genre: “fiction” }
]
해설 (0)

ES6(ES2015)구현을 사용하여 설정

중 하나를 사용할 수 있습니다 배열입니다.부터()산 구문

배열입니다.부터()예

const names = ["Mike","Matt","Nancy","Adam","Jenny","Nancy","Carl"];
const uniqueNames = Array.from(new Set(names));
console.log(uniqueNames);

스프레드는 구문 예

const names = ["Mike","Matt","Nancy","Adam","Jenny","Nancy","Carl"];
const uniqueNames = [...new Set(names)];
console.log(uniqueNames);
해설 (0)

사용

var obj = { "10":5, "2":7, "3":0, "4":0, "5":0, "6":0, "7":0,
            "8":0, "9":0, "10":0, "11":0, "12":0 };

var objectToArray = function(obj) {
    var _arr = [];

    for (var key in obj) {
        _arr.push([key, obj[key]]);
    }
    return _arr;
}

console.log(objectToArray(obj));
해설 (0)

우리는 우리를 변경할 수 있습 번호 문자열로 입력한 키를 아래와 같다:

var obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
var result = Object.keys(obj).map(function(key) {
  return [String(key), obj[key]];
});

console.log(result);
해설 (0)

재귀적 객체로 변환하여 배열

function is_object(mixed_var) {
    if (mixed_var instanceof Array) {
        return false;
    } else {
        return (mixed_var !== null) && (typeof( mixed_var ) == 'object');
    }
}

function objectToArray(obj) {
    var array = [], tempObject;
    for (var key in obj) {

        tempObject = obj[key];

        if (is_object(obj[key])) {
            tempObject = objectToArray(obj[key]);
        }
        array[key] = tempObject;
    }
    return array;
}
해설 (0)

이것은 나의 솔루션을,저도 동일한 문제와 같이 보이는 이 솔루션을 살펴보십시오.

yourObj = [].concat(yourObj);
해설 (0)

이는 가장 간단한 솔루션을 사용하개체입니다.항목()

var obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
var result =Object.entries(obj)

console.log(result);
해설 (0)

당신이 사용할 수 있_.castArray(obj).

예제: _.castArray({'a':1}); //=>[{'a':1}]

해설 (0)
var obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
var result = Object.keys(obj).map( o =>[{"Col1" :Number(o), "Col2": obj[o]}])

console.log(result)
해설 (3)