我想知道是否有一种原生/优雅的方式来做到这一点:
var object = {
value: 1,
desc: 'an object',
method: function(){
return this.description + ' with value: ' + this.value;
},
};
var onlyProperties = JSON.parse(JSON.stringify(object));
如您所见,我只想要其中没有任何方法的属性。上面的代码可以工作,但这样做感觉不对。
最佳答案
如果您不寻求递归解决方案,这里有一种简单的方法。
for (var i in obj) {
if (obj.hasOwnProperty(i) && typeof obj[i] === 'function') {
delete obj[i];
}
}
如果你想要一份没有功能的副本:
var copy = {};
for (var i in obj) {
if (obj.hasOwnProperty(i) && typeof obj[i] !== 'function') {
copy[i] = obj[i];
}
}
关于从对象中剥离属性的 Javascript native /优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18658338/