假设我有嵌套对象,例如:
var obj = { "items":[ { "name":"Item 1", "value": "500", "options": [{...},{...}] }, { "name":"Item 2", "value": "300", "options": [{...},{...}] } ], "name": "Category", "options": [{...},{...}] };
我想从所有对象的任何深度删除选项属性。对象可以嵌套在对象内,也可以嵌套在数组内。
我们目前在项目中使用Lodash,但我对任何解决方案感到好奇。
没有实现此目的的直接方法,但是您可以使用以下功能从JSON中删除密钥。
function filterObject(obj, key) { for (var i in obj) { if (!obj.hasOwnProperty(i)) continue; if (typeof obj[i] == 'object') { filterObject(obj[i], key); } else if (i == key) { delete key; } } return obj; }
并像这样使用
var newObject = filterObject(old_json, "option");