Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在TypeScript中使用Reduce实现Map函数_Javascript_Typescript_Reduce - Fatal编程技术网

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 [];
  } 

}