util.js 1.2 KB

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