Guest User

Untitled

a guest
Jan 23rd, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. var _STRING = "string", _ARRAY = "array", _HELLO = "Hola", _SPACE = " ";
  2.  
  3. function toType(obj) {
  4. //return ({}).toString.call(obj).match(/\s([a-z|A-Z]+)/)[1].toLowerCase();
  5.  
  6. //Expresión regular mejorada
  7. //return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
  8.  
  9. // Usando el "slice"
  10. return ({}).toString.call(obj).slice(8,-1).toLowerCase();
  11. }
  12.  
  13. function isArray(input) {
  14. return toType(input) === _ARRAY;
  15. }
  16.  
  17. function isString(input) {
  18. return toType(input) === _STRING;
  19. }
  20.  
  21. function convertString(input) {
  22. (toType(input) === _STRING && (input = input.trim())) || (input = "");
  23. return input;
  24. }
  25.  
  26. function getNamesFromArray(input) {
  27. var names = [],
  28. namesMaxLen = input.length,
  29. item,
  30. current;
  31. for (item = namesMaxLen; item > 0; --item) {
  32. current = input[namesMaxLen - item];
  33. if (isString(current)) {
  34. names.push(current);
  35. } else if (isArray(current)) {
  36. names = names.concat(getNamesFromArray(current));
  37. }
  38. }
  39. return names;
  40. }
  41.  
  42. var crearSaludo = function(input) {
  43. var result,
  44. current,
  45. names,
  46. namesMaxLen,
  47. subNamesMaxLen,
  48. item,
  49. subItem,
  50. funcSaludo;
  51. var saludo = function() {
  52. current = convertString(input);
  53. if (current.length > 0) {
  54. result = _HELLO + _SPACE + current;
  55. }
  56. return result;
  57. };
  58. if (isArray(input)) {
  59. funcSaludo = [], names = [], namesMaxLen = input.length;
  60. for (item = namesMaxLen; item > 0; --item) {
  61. current = input[namesMaxLen - item];
  62. if (isString(current)) {
  63. funcSaludo.push(crearSaludo(current));
  64. } else if (isArray(current)) {
  65. names = getNamesFromArray(current);
  66. subNamesMaxLen = names.length;
  67. for (subItem = subNamesMaxLen; subItem > 0; --subItem) {
  68. funcSaludo.push(crearSaludo(names[subNamesMaxLen - subItem]));
  69. }
  70. }
  71. }
  72. } else {
  73. funcSaludo = saludo;
  74. }
  75. return funcSaludo;
  76. };
Add Comment
Please, Sign In to add comment