将此对象转换为键值对数组

时间:2019-04-24 09:25:44

标签: javascript arrays object ecmascript-6

如果我们创建一个像这样的对象

const userDetails={firstname:'karan',lastname:'khimani'}

然后是预期的输出

[["firstname", "karan"], ["lastname", "khimani"]]

我如何转换它?

2 个答案:

答案 0 :(得分:2)

使用Object.entries

const userDetails = { firstname: "karan", lastname: "khimani" };
const arr = Object.entries(userDetails);
console.log(arr);

我相信这是ES7的功能-因此,如果您需要支持较旧的浏览器,请将mapObject.keys结合使用:

var userDetails = { firstname: "karan", lastname: "khimani" };
var arr = Object.keys(userDetails).map(function(key) {
  return [key, userDetails[key]]
});
console.log(arr);

答案 1 :(得分:1)

所以您要做的是创建一个数组,其中包含键和值作为数组。

您应该看看Object.keysObject.entries

下面是解决方法,但请先查看我提供给您的功能文档,然后尝试自己找到它。


const userDetails = {
  firstname: 'karan',
  lastname: 'khimani'
};

const transformed = Object.keys(userDetails).map(x => [x, userDetails[x]]);

console.log(transformed);


为什么不总是使用Object.entries?因为并非所有浏览器都支持它。

const userDetails = {
  firstname: 'karan',
  lastname: 'khimani'
};

const transformed = Object.entries(userDetails);

console.log(transformed);

enter image description here