hsz*_*hsz 3 javascript jquery object
我有以下输入:
{
foo: 4,
bar: 3
}
Run Code Online (Sandbox Code Playgroud)
我想修改这个对象的键来得到:
{
x_foo_y: 4,
x_bar_y: 3
}
Run Code Online (Sandbox Code Playgroud)
是否可以在不创建新对象的情况下修改对象?(jQuery 可用)
是的,您只需添加新密钥并删除旧密钥:
obj.x_foo_y = obj.foo;
delete obj.foo;
obj.x_bar_y = obj.bar;
delete obj.bar;
Run Code Online (Sandbox Code Playgroud)
请注意,在某些引擎(特别是 Chrome 中的 V8)上,这会影响对象的性能。如果您不需要实际删除属性,您可以将它们的值设置为undefined:
obj.x_foo_y = obj.foo;
obj.foo = undefined;
obj.x_bar_y = obj.bar;
obj.bar = undefined;
Run Code Online (Sandbox Code Playgroud)
这不会产生影响(正是它delete使 V8 将对象置于“字典模式”,这比 V8 的正常编译类模式慢得多)。
如果您想对对象中的所有“拥有”属性执行此操作:
var key;
for (key in obj) {
if (obj.hasOwnProperty(key)) {
obj["x" + key + "y"] = obj[key];
delete obj[key]; // Or obj[key] = undefined if that's okay for your use case
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
522 次 |
| 最近记录: |