函数式编程
hulin32 opened this issue · comments
这里以Ramda举例:
import * as R from 'ramda';
const arrayData = [
{
attributes: {
uri: { url: 'test' },
}
}
];
const DOMAIN = 'http://domain.com/';
// normal way
function addDomainForUrl(included) {
return included.map(item => {
const obj = item;
if (obj.attributes.uri) {
obj.attributes.uri.url = `${DOMAIN}${obj.attributes.uri.url}`;
}
if (obj.attributes.url) {
obj.attributes.url = `${DOMAIN}${obj.attributes.url}`;
}
return obj;
});
}
// addDomainForUrl(arrayData);
// functional way
const addDomain = (url) => `${DOMAIN}${url}`;
const transformations = {
attributes: {
url: addDomain,
uri: {
url: addDomain
}
},
}
//R.map(R.evolve(transformations), arrayData);