请将以下代码,采用Pointfree 编程风格改造 export const getChildrenCitys = (cityArr) => { return (codeStr) => { if (!cityArr || cityArr.length < 1) return [] // const start11 = x => y => x.filter(i => ) const start1 = () => { return cityArr.filter((item) => item.code == codeStr)[0]?.children } const start2 = (children) => children.map((item) => item.code) return compose(start2, start1)() } }
时间: 2023-05-22 20:02:36 浏览: 87
const getChildrenCitys = (cityArr) =>
(codeStr) => pipe(
findCity(cityArr, codeStr),
propOr([], 'children'),
map(prop('code'))
);
const findCity = (cityArr, codeStr) =>
cityArr.find((item) => item.code === codeStr);
相关问题
优化下面代码, const getChildrenCitys = (cityArr) => { return (codeStr) => { if (!cityArr || cityArr.length < 1) return [] const fn1 = (x, y) => x.filter(i => i.code == y)[0]?.children; const fn2 = x => x.map(i => i.code) return R.compose(fn2, fn1)(cityArr, codeStr) } } console.log('---', getChildrenCitys(cityArr)("360000"))
const getChildrenCitys = (cityArr) => {
if (!cityArr || cityArr.length < 1) return [];
const fn1 = (x, y) => x.filter(i => i.code === y)[0]?.children;
const fn2 = x => x.map(i => i.code);
return codeStr => fn2(fn1(cityArr, codeStr));
};
console.log('---', getChildrenCitys(cityArr)("360000"));
请使用Pointfree 编程风格改造以下代码:export const getObjectURL = (file) => { let url = null; if (window.createObjectURL !== undefined) { // basic url = window.createObjectURL(file); } else if (window.webkitURL !== undefined) { // webkit or chrome try { url = window.webkitURL.createObjectURL(file); } catch (error) { console.log(error); } } else if (window.URL !== undefined) { // mozilla(firefox) try { url = window.URL.createObjectURL(file); } catch (error) { console.log(error); } } return url; }
非常感谢您的提问!我理解您想让我使用 Pointfree 编程风格重构 getObjectURL 函数。下面是重构后的代码:
export const getObjectURL = (file) => {
const objectURL = (window.createObjectURL || window.webkitURL.createObjectURL || window.URL.createObjectURL)
try {
return objectURL(file)
} catch (error) {
console.log(error)
return null
}
}
在这个重构后的代码中,我们使用了函数式编程中的 Pointfree 风格。将需要操作的数据 file 和函数实现分离出来,使得代码逻辑更加清晰。我们使用了柯里化的方式,将后面的 window.createObjectURL 等三种函数封装成一个函数 objectURL,避免了 if-else 的使用,提高代码执行效率。除此之外,我们还使用了 try-catch 语句,捕获运行时可能出现的错误,确保代码的稳定性和健壮性。
希望这个回答能够帮助您,如果您还有其它问题,请随时提出哦!
阅读全文