Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Search through an object and delete any properties supplied in the list.
- * Is case-sensitive and recursive by default. Both can be toggled by passing false.
- * @param {Object} r original JS object
- * @param {Array} properties list of keys/properties to remove
- * @param {Boolean} [case_sensitive=true] set to false for case-insensitive
- * @param {Boolean} [recursive=true] set to true for recursive
- * @return {Object} modified JS object
- */
- function remove_properties(r,properties,case_sensitive = true,recursive = true) {
- recursive = (typeof recursive === "undefined" || typeof recursive !== "boolean") ? true : recursive;
- case_sensitive = (typeof case_sensitive === "undefined" || typeof case_sensitive !== "boolean") ? true : case_sensitive;
- if (case_sensitive === false) {
- for (var i = 0; i < properties.length; i++) {
- properties[i] = properties[i].toUpperCase();
- }
- }
- for (var key in r) {
- // Check for recursive cases (array or object)
- if(recursive === true) {
- if (Array.isArray(r[key])) { // if the key is an array
- for (var i = 0; i < r[key].length; i++) {
- r[key][i] = strip_properties(r[key][i],properties,recursive,case_sensitive);
- }
- } else if (typeof r[key] === "object") { // if the key is an object
- r[key] = strip_properties(r[key],properties,recursive,case_sensitive);
- }
- }
- // Check for key to delete
- if (case_sensitive === false) {
- if (properties.indexOf(key.toUpperCase()) != -1) { delete r[key]; }
- } else {
- if (properties.indexOf(key) != -1) { delete r[key]; }
- }
- }
- return r;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement