代码之家  ›  专栏  ›  技术社区  ›  sooon

javascript-将对象转换为对象数组

  •  -4
  • sooon  · 技术社区  · 6 年前

    我认为这不难,但我就是搞不好。 我要转换对象:

    {
    {t1 : value1},
    {t2 : value2},
    {t3 : value3}
    }
    

    进入数组:

    [
    {t1 : value1},
    {t2 : value2},
    {t3 : value3}
    ]
    

    我该怎么做?

    我尝试过:

    let items = {{t1 : value1}, {t2 : value2}, {t3 : value3}}
    
    let arr = items.map( obj => Object.values(obj) )
    

    但出现了错误:

    items.map不是函数

    4 回复  |  直到 6 年前
        1
  •  1
  •   You Nguyen    6 年前

    试试这个:

    const obj = {
       obj1: { t1: 'value1' },
       obj2: { t2: 'value2' },
       obj3: { t3: 'value3' }
    }
    let items = [];
    for (var prop in obj) {
       items.push(obj[prop])
    }
    console.log(items)

    我纠正了一些语法错误。

        2
  •  0
  •   zentan    6 年前

    你应该注意 items ,因为它的类型是Object。当您使用 Object.map ,您得到的错误是:

    items.map不是函数

    还有一个项目上的错误,它只是 对象 因此,它必须有两个要素 key value

        3
  •  0
  •   zer00ne    6 年前

    对象无效,请尝试以下操作:

    var obj = { KEY:{key: 'val'},...
    

    使用 Object.keys() 它返回一个实数数组,数组方法将依次接受该实数数组 map() 返回数组中的对象。

    演示

    var obj = {
      0: {
        key0: 'val0'
      },
      1: {
        key1: 'val1'
      },
      2: {
        key2: 'val2'
      }
    };
    
    var arrKeys = Object.keys(obj);
    
    console.log(arrKeys);
    
    var arrObj = arrKeys.map((key, idx) => {
      return obj[key];
    });
    
    console.log(arrObj);
        4
  •  0
  •   Sooriya Dasanayake    6 年前

    这是一个无效的对象,请尝试…

    let items = {  obj1: { t1: 'value1' },obj2: { t2: 'value2' },obj3: { t3: 'value3' }}
    var result = Object.keys(items).map(function(key) {
      return [items[key]];
    });
    
    console.log(result);