object_filter.js 660 B

1234567891011121314151617181920212223242526
  1. let phone = {
  2. brand: "meizu",
  3. model: "m2",
  4. ram: 2,
  5. color: "black",
  6. };
  7. const filter1 = (obj, callback) => {
  8. return Object.fromEntries(Object.entries(obj).filter(([key, val]) => callback(key, val)));
  9. }
  10. // или
  11. const filter2 = (obj, condition) => {
  12. const filteredObj = {};
  13. for (const [key, value] of Object.entries(obj)) {
  14. if(condition(key, value)) {
  15. filteredObj[key] = obj[key];
  16. }
  17. }
  18. return filteredObj;
  19. }
  20. console.log(filter1(phone,(key,value) => key === "color" || value === 2)); // { ram: 2, color: 'black' }
  21. console.log(filter2(phone,(key,value) => key === "color" || value === 2)); // { ram: 2, color: 'black' }