提交学习笔记专用
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.5 KiB

  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.findArr = exports.includes = exports.forEach = exports.find = void 0;
  4. function valuesOfObj(record) {
  5. if ('values' in Object) {
  6. // eslint-disable-next-line es5/no-es6-methods
  7. return Object.values(record);
  8. }
  9. const values = [];
  10. // eslint-disable-next-line no-restricted-syntax
  11. for (const key in record) {
  12. if (record.hasOwnProperty(key)) {
  13. values.push(record[key]);
  14. }
  15. }
  16. return values;
  17. }
  18. function find(record, predicate) {
  19. const values = valuesOfObj(record);
  20. if ('find' in values) {
  21. // eslint-disable-next-line es5/no-es6-methods
  22. return values.find(predicate);
  23. }
  24. const valuesNotNever = values;
  25. for (let i = 0; i < valuesNotNever.length; i++) {
  26. const value = valuesNotNever[i];
  27. if (predicate(value)) {
  28. return value;
  29. }
  30. }
  31. return undefined;
  32. }
  33. exports.find = find;
  34. function forEach(record, run) {
  35. Object.entries(record).forEach(([key, value]) => run(value, key));
  36. }
  37. exports.forEach = forEach;
  38. function includes(arr, value) {
  39. return arr.indexOf(value) !== -1;
  40. }
  41. exports.includes = includes;
  42. function findArr(record, predicate) {
  43. for (let i = 0; i < record.length; i++) {
  44. const value = record[i];
  45. if (predicate(value)) {
  46. return value;
  47. }
  48. }
  49. return undefined;
  50. }
  51. exports.findArr = findArr;
  52. //# sourceMappingURL=util.js.map