Javascript从属性中删除对象

时间:2015-11-27 14:21:37

标签: javascript

如果你有一个对象附加到这样的属性:

obj = {};
obj.prop = {name:'test'};

是否有一种方法,类似于使用array.splice,从该属性中删除对象,并返回它以便它可以附加到另一个对象?

2 个答案:

答案 0 :(得分:5)

当然可以:



var obj = {};
obj.prop = { name: 'test' };

var newObj = { prop: obj.prop} ; // Copy prop to a new object
delete obj.prop;                // delete `prop` on the old object.

document.body.textContent = 'newObj: ' + JSON.stringify(newObj);




如果属性是自己的不可配置属性,则

delete在严格模式下抛出错误(在非严格模式下返回false)。在所有其他情况下,它会返回true

所以,虽然技术上没有popsplice这样的函数可以返回已移除的属性,但解决这个问题很简单。

答案 1 :(得分:0)

要一次性从一个对象中删除/返回一个属性,我认为你需要自己的功能。类似的东西:

function removeValue(obj, property) {
  var prop = obj[property];
  delete obj[property];
  return prop;
}