首页 > 其他 > 详细

[Ramda] Pick and Omit Properties from Objects Using Ramda

时间:2017-02-28 23:03:03      阅读:213      评论:0      收藏:0      [点我收藏+]

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);

 

[Ramda] Pick and Omit Properties from Objects Using Ramda

原文:http://www.cnblogs.com/Answer1215/p/6481036.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!