Advertisement
Guest User

Untitled

a guest
Aug 21st, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. /**
  2. * Search through an object and delete any properties supplied in the list.
  3. * Is case-sensitive and recursive by default. Both can be toggled by passing false.
  4. * @param {Object} r original JS object
  5. * @param {Array} properties list of keys/properties to remove
  6. * @param {Boolean} [case_sensitive=true] set to false for case-insensitive
  7. * @param {Boolean} [recursive=true] set to true for recursive
  8. * @return {Object} modified JS object
  9. */
  10. function remove_properties(r,properties,case_sensitive = true,recursive = true) {
  11. recursive = (typeof recursive === "undefined" || typeof recursive !== "boolean") ? true : recursive;
  12. case_sensitive = (typeof case_sensitive === "undefined" || typeof case_sensitive !== "boolean") ? true : case_sensitive;
  13.  
  14. if (case_sensitive === false) {
  15. for (var i = 0; i < properties.length; i++) {
  16. properties[i] = properties[i].toUpperCase();
  17. }
  18. }
  19.  
  20. for (var key in r) {
  21. // Check for recursive cases (array or object)
  22. if(recursive === true) {
  23. if (Array.isArray(r[key])) { // if the key is an array
  24. for (var i = 0; i < r[key].length; i++) {
  25. r[key][i] = strip_properties(r[key][i],properties,recursive,case_sensitive);
  26. }
  27. } else if (typeof r[key] === "object") { // if the key is an object
  28. r[key] = strip_properties(r[key],properties,recursive,case_sensitive);
  29. }
  30. }
  31.  
  32. // Check for key to delete
  33. if (case_sensitive === false) {
  34. if (properties.indexOf(key.toUpperCase()) != -1) { delete r[key]; }
  35. } else {
  36. if (properties.indexOf(key) != -1) { delete r[key]; }
  37. }
  38. }
  39. return r;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement