Object.entries() 但对象而不是数组

Kar*_*ric 1 javascript methods object

假设我有一个对象:

var obj = { a:{}, b:1, c: new Set() };
Run Code Online (Sandbox Code Playgroud)

如果没有工作,对象就无法迭代,并且 Object.keys/values/entries 并不完全是我想要的。Object.entries() 很接近,但我更希望它返回一个对象数组而不是二维数组,理想情况下引用完好无损(在适当的情况下)。

所以像这样:

Object.items( obj ) = [ { a: {} }, { b: 1 }, { c: new Set() } ];
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用 Object.entries() 创建一个函数来执行此操作,我只是想确认还没有类似的东西。

Que*_*tin 5

你是对的,没有任何东西可以做到这一点。您需要构建自己的函数,这entries是一个很好的起点。

var obj = { a:{}, b:1, c: new Set() };
var obj2 = Object.entries(obj).map((array) => ({ [array[0]]: array[1] }));

console.log(obj2);
console.log(obj2[2].c === obj.c);
Run Code Online (Sandbox Code Playgroud)

  • 您还可以使用解构来摆脱“[0]”和“[1]”。 (2认同)