如何将Firebase对象转换为数组?

时间:2018-10-21 04:55:39

标签: javascript axios

我正在将Firebase与axios一起使用。 我需要转换此对象:

{r1: "Room 1", r2: "Room 2", r3: "Room 3"}

放入数组:

rooms = [
    { id: 'r1', name: 'Room 1'},
    { id: 'r2', name: 'Room 2'},
    { id: 'r3', name: 'Room 3'},
];

目前,我很焦虑地从firebase进行呼叫,如下所示:

axios.get('firebaseURL').then(response => {console.log(response.data)});

3 个答案:

答案 0 :(得分:1)

您可以将Object.keys(rooms)map()一起使用-Object.keys返回包含所有对象键的数组,而map函数除每个键之外,将返回您所需要的任何内容将该键放入一个新数组中。 因此,在Object.keys(rooms)下面的代码段中,它等于[ 'r1', 'r2', 'r3' ],因此很容易构造所需的数组。

const rooms = {r1: "Room 1", r2: "Room 2", r3: "Room 3"};

const arrayResult = Object.keys(rooms).map(room => {
    return {id: room, name: rooms[room]} 
});

答案 1 :(得分:0)

查看此answer

const array = [];

Object.keys(yourObject).forEach((key) => {
  array.push({[key]: object1[key]});
});

答案 2 :(得分:0)

您可以使用此软件包https://github.com/just1and0/object-to-array-convert

尝试一下
import { O2A } from 'object-to-array-convert';

const rooms = {r1: "Room 1", r2: "Room 2", r3: "Room 3"};

const value = O2A(rooms);

return value