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

时间:2018-09-30 03:28:06

标签: javascript

我认为应该不难,但我做对了。 我要转换对象:

{
{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 个答案:

答案 0 :(得分:1)

尝试一下:

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)

我已经纠正了一些语法错误。

答案 1 :(得分:0)

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

  

items.map不是函数

另外,您在商品上还有另一个错误,只是一个 Object 。因此它必须包含两个元素-keyvalue

答案 2 :(得分:0)

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

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);

答案 3 :(得分:0)

这是无效的对象,请尝试...。

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);