zoukankan      html  css  js  c++  java
  • [Ramda] Pick and Omit Properties from Objects Using Ramda

    Sometimes you just need a subset of an object. In this lesson, we'll cover how you can accomplish this using Ramda's pick and omit functions, as well as the pickAll and pickBy variants of pick.

    const R = require('ramda');
    
    const {pick, prop, pickBy, pickAll, props, omit, compose, not, curry} = R;
    
    const log = curry((desc, x) => R.tap(() => console.log(desc, JSON.stringify(x, null, 2)), x));
    
    const product = {
        name: 'widget',
        price: 10,
        shippingWeight: 20,
        shippingMethod: 'UPS'
    };
    
    // get one single prop from a large object
    const getByProp = pick(['name']); // { name: 'widget' }
    
    // different from R.prop
    const getPropVal = prop('name'); // 'widget'
    
    const getByProps = pickAll(['name', 'price']); // { name: 'widget', price: 10 }
    
    const getPropsVals = props(['name', 'price']); // [ 'widget', 10 ]
    
    const getByPickBy = pickBy((val, key) => {
        // Only get prop if
        // val: is number
        // key contains 'shipping'
        return Number(val) && key.includes('shipping');
    });  // { shippingWeight: 20 }
    
    const omitShippingProps = omit(['shippingWeight', 'shippingMethod']); // { name: 'widget', price: 10 }
    
    // another way to omit props by conditions
    const notToPickByShippingProps = pickBy((val, key) => !key.includes('shipping')); // { name: 'widget', price: 10 }
    
    
    const result = notToPickByShippingProps(product);
    console.log(result);
  • 相关阅读:
    windows下配置docker
    libxml2 安装及使用
    lua 5.3 英文手册 自己收集整理版
    Unity3D RPC调用顺序问题
    对于问题的一个思考
    第十三章博客
    第十一章
    第十章博客
    第九章笔记
    S1304数据库前三章测试错题
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6481036.html
Copyright © 2011-2022 走看看