在ES6中 如何将类似这样的Object转换为Array?

已经确定的Web API结构返回数据如下:

图片描述

希望转换成,数组形式的包裹的Object,像这样:

[

{
  cat_id:5,
  cat_logo:"http://img.ctfhoko.com/public/images/03/4e/49/f94057ddbfcc0a773fd9cf8c9f48a28c920e43de.png",
  cat_name:"母婴用品",
},
{
    cat_id:5,
    cat_logo:"http://img.ctfhoko.com/public/images/03/4e/49/f94057ddbfcc0a773fd9cf8c9f48a28c920e43de.png",
    cat_name:"母婴用品",
},
{
    cat_id:5,
    cat_logo:"http://img.ctfhoko.com/public/images/03/4e/49/f94057ddbfcc0a773fd9cf8c9f48a28c920e43de.png",
    cat_name:"母婴用品",
}

]

试过Array.from(), 似乎不行...

阅读 14.3k
3 个回答

不知道有没有什么特殊的函数可以处理这个情况,不过简单点我们自己写一个也OK:

var result = {
    status: 0,
    msg: '',
    data: {
        0: {...},
        1: {...},
        2: {...},
        ...
    }
};

var arr = Object.keys(result.data).map(key=> result.data[key]);

console.log(arr);//你要的数组
var data = {
    "1": { cat_id:5, cat_name:"母婴用品"},
    "2": { cat_id:5, cat_name:"母婴用品"},
    "3": { cat_id:5, cat_name:"母婴用品"}
}

var array = Object.keys(data).map(function(el){
    return data[el];
});

使用ES6的Array.from方法 var arr = Array.from(obj)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题