如何强制对象键值对首先位于对象中
How to force an object key-value pair to sit first in an object?
我已经有一个包含某些内容的对象:
{
name: 'Smith',
age: 24
}
我想添加其他东西,但强迫它先坐下。我该怎么做?
在 ECMAScript 的过去版本中,对象中键的顺序是未定义的(意思是,顺序无关紧要,你不能指望顺序保持不变)。
然而,在 ECMAScript 2015 中,顺序被明确定义为插入它们的顺序,这意味着你只能在对象的末尾插入新键。
根据这个答案,值得注意的是,虽然顺序是在 ES2015 中定义的,但由于遗留原因,ES5 及更低版本中的所有函数都不需要实现它。
但是,(从这里的个人经验来看,我可能完全错了)从我记事起,所有浏览器都实现了今天的规范中的对象顺序。
除了@MadaraUchiha答案之外,您还可以使用 Object.assign() 创建新对象并先分配新键,然后再分配其余键:
var obj = {
name: 'Smith',
age: 24
};
var obj = Object.assign({}, {prop: 'something else'}, obj);
相关文章:
- 为什么属性存在于对象实例上,即使其原型发生了更改
- undercore返回数组中对象的indes,其中单词存在于对象中的句子中
- 检查数组中的项是否存在于对象内部
- 如何创建行为类似于本机对象的对象
- 如果闭包的行为类似于对象,它们是对象吗?(好像不像)
- 为什么原始变量的行为类似于对象
- 样式未应用于对象
- 未定义相对于对象的行为
- Javascript Array.indexOf() 在应用于对象数组时表现出奇怪的行为
- HTML5 画布 - 相对于对象的中心进行缩放,而不翻译上下文
- 添加相对于对象的速度
- Qunit测试属性存在于对象中
- babel 5和babel 6之间发生的事情导致我导入的模块存在于对象的默认属性之外
- IndexOf和.splice()等效于对象
- 如何检查我的键是否存在于对象数组中
- For in循环只适用于对象中的最后一个键
- Array.prototype.forEach.call等价于对象
- JavaScript -数组的行为类似于对象
- 扩展运算符相当于对象赋值
- 检查key是否存在于对象数组中