How to convert an Object {} to an Array [] of key-value pairs in JavaScript

前端 未结 18 2013
名媛妹妹
名媛妹妹 2020-11-22 12:58

I want to convert an object like this:

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

18条回答
  •  遇见更好的自我
    2020-11-22 13:16

    You can use Object.values([]), you might need this polyfill if you don't already:

    const objectToValuesPolyfill = (object) => {
      return Object.keys(object).map(key => object[key]);
    };
    Object.values = Object.values || objectToValuesPolyfill;
    

    https://stackoverflow.com/a/54822153/846348

    Then you can just do:

    var object = {1: 'hello', 2: 'world'};
    var array = Object.values(object);
    

    Just remember that arrays in js can only use numerical keys so if you used something else in the object then those will become `0,1,2...x``

    It can be useful to remove duplicates for example if you have a unique key.

    var obj = {};
    object[uniqueKey] = '...';
    

提交回复
热议问题