如何实现Object.pop()?
Objects are ordered in ES2015,因此我能想到的唯一解决方案是将对象转换为保持顺序的数组。然后可以完成类似数组的操作。最终将数组转换回对象。我认为这是适当的:
Object.getOwnPropertyNames ...确实遵循以下顺序 对于普通物体:
- 整数索引(如果适用),以升序排列。
- 其他字符串键(如果有),按属性创建顺序。
- 符号键(如果有),按属性创建顺序。
请参阅我引用的the link。因此,它不希望与数字一起使用,否则Object.pop()
应该删除并返回按时间顺序在对象中最后插入的元素。我没有数字作为关键。可以在数字前加上字母以按时间顺序排列。
它应该通过以下测试
let obj = {a:1, b:2, c:3}
let popped = Object.pop(obj)
console.log(popped); // should output {c: 3}
console.log(obj); // should output {a:1, b:2}
答案 0 :(得分:1)
如果您要按名称删除属性,则只需delete
:
var obj = {
foo: 1,
bar: 2,
baz: 3,
};
delete obj["bar"];
console.log(obj);
为MDN says:
对象本身没有任何方法可以删除其自身的属性(例如,
Map.prototype.delete()
)。为此,必须使用delete operator。