Javascript 在TypeScript中使用Reduce实现Map函数
我需要使用Javascript 在TypeScript中使用Reduce实现Map函数,javascript,typescript,reduce,Javascript,Typescript,Reduce,我需要使用reduce实现映射功能 要求: map函数应将fn函数应用于数组中的每个元素 数组不应变异 这是到目前为止我的代码(我正在检查数组是否为空): 函数映射(数组:A[],fn:(A:A)=>B:B[]{ if(array.length==0){ 返回[]; } } 非常感谢您的帮助 您可以这样做(未经测试): const-map=(数组:只读A[],fn:(A:A)=>B:B[]=>{ 返回数组。减少((全部,项)=>{ 全部推送(fn(项目)); 全部归还; },[]作为B[
reduce
实现映射功能要求:
函数应将map
函数应用于fn
数组中的每个元素
不应变异数组
函数映射(数组:A[],fn:(A:A)=>B:B[]{
if(array.length==0){
返回[];
}
}
非常感谢您的帮助 您可以这样做(未经测试):
const-map=(数组:只读A[],fn:(A:A)=>B:B[]=>{
返回数组。减少((全部,项)=>{
全部推送(fn(项目));
全部归还;
},[]作为B[]);
};
一个明显的问题是,为什么你不能直接使用.map()
?@phuzi这就是任务-禁止使用map。我需要使用reduce:)对其进行弹劾,检查是不必要的,如果数组为空,则返回空anyways@AnnaHarshyna请使用返回[…acc,fn(项目)]
。避免内部突变reduce@captain-yossarian想解释一下吗?在这种特殊情况下,有什么好处?Reduce是一种更实用的方法。它可以用于函数合成。一般来说,这里没有人期望突变。顺便说一句,我认为最好避免论点的变异。但这只是我的想法。我尊重你的方法。没有人期望局部变量变异为函数本身创建的函数?我不明白为什么会有问题。你是愿意接受解释和争论,还是只想争论?我这样问是因为如果你是FP仇恨者,没有人会在这场讨论中获胜
function map<A, B>(array: A[], fn: (a: A) => B): B[] {
if (array.length === 0) {
return [];
}
}