1
0

array.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /**
  2. * 删除数组中的匹配值
  3. * @param $callback
  4. */
  5. Array.prototype.remove = function ($callback) {
  6. var $isFunction = typeof $callback === "function";
  7. var arr = [];
  8. for (var $i = 0, $len = this.length; $i < $len; $i++) {
  9. if ($isFunction) {
  10. if ($callback(this[$i])) {
  11. arr.push($i);
  12. }
  13. } else if (this[$i] == $callback) {
  14. arr.push($i);
  15. }
  16. }
  17. for ($i = 0, $len = arr.length; $i < $len; $i++) {
  18. this.slice($i, 1);
  19. }
  20. };
  21. String.prototype.endWith = function (endStr) {
  22. var d = this.length - endStr.length;
  23. return (d >= 0 && this.lastIndexOf(endStr) === d)
  24. };
  25. //格式化文件大小
  26. function formatBytes($size) {
  27. if (typeof $size === "number") {
  28. var $units = [" B", " KB", " MB", " GB", " TB"];
  29. for ($i = 0; $size >= 1024 && $i < 4; $i++) $size /= 1024;
  30. return $size.toFixed(2) + $units[$i];
  31. }
  32. return $size;
  33. }
  34. /**
  35. * 将多维的json转换为一维的json
  36. * @param $json
  37. * @param $parentKey
  38. */
  39. function foreachJson($json, $parentKey) {
  40. var data = {};
  41. $.each($json, function (key, item) {
  42. var cKey = $parentKey;
  43. if (Array.isArray($json)) {
  44. key = "[";
  45. }
  46. if ($parentKey !== undefined && $parentKey !== "" && key !== "") {
  47. if($parentKey.endsWith("[")) {
  48. cKey = $parentKey + key + "]";
  49. } else if (key === "[") {
  50. cKey = $parentKey + key;
  51. } else {
  52. cKey = $parentKey + "." + key;
  53. }
  54. } else {
  55. cKey = key;
  56. }
  57. var node = {};
  58. node["key"] = cKey;
  59. node["type"] = Array.isArray(item) ? "array" : typeof item;
  60. node["value"] = item;
  61. if (typeof key === "string" && key !== "[") {
  62. data[cKey] = node;
  63. }
  64. if (typeof item === "object") {
  65. var items = foreachJson(item, cKey);
  66. $.each(items,function (k,v) {
  67. data[k] = v;
  68. });
  69. }
  70. });
  71. return data;
  72. }