首页 > 解决方案 > 如何删除对象的第一个属性?

问题描述

如何删除对象的第一个属性,例如:

var obj = { x:1, y:2, z:3 };

这样obj就变成了:

{ y:2 , z:3 };

这种方法对我不起作用:

delete obj.x

因为我不知道有关对象属性的任何详细信息。

我只需要删除第一个属性。

标签: javascriptobject

解决方案


在现代 JS 环境(ES2015+)中,键的顺序是明确定义的,因此您应该能够执行以下操作:

const keys = Reflect.ownKeys(obj); // thanks to Paulpro for improving this!
if (keys.length) delete obj[keys[0]];

请注意,这delete并不总是有效,但对于大多数“正常”对象,这应该可以满足您的需要。

由于 JS 对象的顺序存在一些争议,这里是 ECMAScript 标准:https ://www.ecma-international.org/ecma-262/6.0/#sec-ordinary-object-internal-methods-and-internal-slots - 拥有属性键


推荐阅读