Проверить Matter.js
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

00100.мир.js 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. мир = {
  2. ключники: [],
  3. };
  4. мир.выпрямить = function(obj)
  5. {
  6. // https://stackoverflow.com/a/42121920
  7. var newObj = {};
  8. for (var key in obj)
  9. {
  10. if (typeof obj[key] === 'object' && obj[key] !== null)
  11. {
  12. var temp = мир.выпрямить(obj[key])
  13. for (var key2 in temp)
  14. {
  15. newObj[key + "." + key2] = temp[key2];
  16. }
  17. }
  18. else
  19. {
  20. newObj[key] = obj[key];
  21. }
  22. }
  23. return newObj;
  24. };
  25. мир.разобрать = function(словарь) {
  26. var значения = мир.выпрямить(словарь);
  27. for (var ключ in значения)
  28. {
  29. var значение = значения[ключ];
  30. for (var номер in мир.ключники)
  31. {
  32. мир.ключники[номер](ключ, значение);
  33. }
  34. }
  35. };
  36. /*
  37. мир.выпрямить = function(data) {
  38. var result = {};
  39. function recurse (cur, prop) {
  40. if (Object(cur) !== cur) {
  41. result[prop] = cur;
  42. } else if (Array.isArray(cur)) {
  43. for(var i=0, l=cur.length; i<l; i++)
  44. recurse(cur[i], prop + "[" + i + "]");
  45. if (l == 0)
  46. result[prop] = [];
  47. } else {
  48. var isEmpty = true;
  49. for (var p in cur) {
  50. isEmpty = false;
  51. recurse(cur[p], prop ? prop+"."+p : p);
  52. }
  53. if (isEmpty && prop)
  54. result[prop] = {};
  55. }
  56. }
  57. recurse(data, "");
  58. return result;
  59. };
  60. */