JavaScript, transform object into array

前端 未结 9 1951
孤城傲影
孤城傲影 2020-12-14 15:58

I\'ve got an object:

var obj = {
    \"Mike\": 24,
    \"Peter\": 23,
    \"Simon\": 33,
    \"Tom\": 12,
    \"Frank\": 31
};

I want to cr

9条回答
  •  甜味超标
    2020-12-14 16:36

    The obvious way would be to do a for-in loop, as @quixoto suggests, but just for the record, and since you are looking for a built-in way, you could pair the new ECMAScript 5 methods Object.keys and Array.prototype.map, available on latest browsers:

    function valuesToArray(obj) {
      return Object.keys(obj).map(function (key) { return obj[key]; });
    }
    

    UPDATE: ES2017 introduced the Object.values method, which does exactly what you want.

    Additionally, ES2017 adds another often useful method, Object.entries. This method returns an array of key-value pairs.

    const obj = {
        "Mike": 24,
        "Peter": 23,
        "Simon": 33,
        "Tom": 12,
        "Frank": 31
    };
    
    const values = Object.values(obj);
    const entries = Object.entries(obj);
    console.log('values:', values);
    console.log('entries:', entries);

提交回复
热议问题