如何将js对象拆分为键值对数组?

use*_*495 4 javascript typescript

假设我有一个这样的对象:

var myObject = {
   X:1,
   Y:2,
   Z:3
}
Run Code Online (Sandbox Code Playgroud)

假设我想创建一个 for 循环来处理对象上的每个属性。下面的代码只是一些伪代码来传达我想要做的事情:

var properties = myObject.split();
for(var i = 0; i < properties.length; i++)
{
   var x = properties[i][key];
   var y = properties[i][value]
}
Run Code Online (Sandbox Code Playgroud)

你能推荐一些我可以用来在 Javascript/TypeScript 中完成此任务的代码吗?

Li3*_*357 7

您可以使用该Object.entries函数将所有键和值对作为数组的数组获取:

\n\n
Object.entries(myObject);\n
Run Code Online (Sandbox Code Playgroud)\n\n

这将返回:

\n\n
[[\'X\', 1], [\'Y\', 2], [\'Z\' 3]]\n
Run Code Online (Sandbox Code Playgroud)\n\n

你可以迭代它们:

\n\n
for(const [key, value] of Object.entries(myObject)) {\n  console.log(key, value);\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这会注销:

\n\n
X 1\nY 2\nZ 3\n
Run Code Online (Sandbox Code Playgroud)\n\n

请注意,这是一个相对较新的功能,IE 和 Opera 均不支持。您可以使用 MDN 中的 polyfill 或使用任何其他方法(for\xe2\x80\xa6in使用 hasOwnProperty Object.keys等)。

\n