获取没有特定属性的对象

有没有一种方法可以扣除特定属性以使其可克隆(因为该属性可能包含圆圈)?

也许与此类似:

item = { a: 'A', b: 'B', circularProperty: somethingCircular };
$.extend(true,{},item.withoutProperties(['circularProperty']);


qq_花开花谢_0
浏览 143回答 3
3回答

Smart猫小萌

你可以这样item = { a: 'A', b: 'B', circularProperty: 'abc' };    function removeProperty(obj, propertyName) {      let { [propertyName]: _, ...result } = obj      return result    }    console.log(removeProperty(item, 'circularProperty'));

白衣非少年

使用delete和临时变量const item = {  a: 'A',  b: 'B',  circularProperty: {    a: 'A',    b: 'B',    circularProperty: {      a: 'A',      b: 'B'    }  }};let temp = item.circularProperty;delete item.circularProperty;console.log(item);item.circularProperty = temp;console.log(item);

眼眸繁星

我知道lodashpick如果我没有记错的话,就有一种方法,但是我不相信jQuery为此内置了操作。您可能必须重建对象。var objectKeys = Object.keys(item);var keysWithoutCircularProperty = objectKeys.filter(function(key){    return key != 'circularProperty';});var shallowClone = keysWithoutCircularProperty.reduce(function(result, key) {    result[key] = item[key];    return result;}, {});删除了箭头功能,因为您在另一个答案中没有说ES6。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript