
[英]Argument of type 'void' is not assignable to parameter of type array
我创建了一个包含数据库字段的接口,其次我创建了一个服务,其中我创建了一个使用Http services访问数据的函数。现在我想使用相同的创建函数在mat-table中显示数据。 ...
[英]type void is not assignable to array
提示:本站为国内最大中英文翻译问答网站,提供中英文对照查看,鼠标放在中文字句上可显示英文原文。
我正在尝试创建一种方法,该方法从数组的每个元素的字符串(包含数字的字符串)中删除所有零;
我收到此错误“类型 void 不可分配给程序 []
public removeLeadingZeros(programs: Program[]) {
let programCopy: Program[];
programCopy= programs.forEach(p => {
p.number.replace(/^0+/, '');
});
return programCopy;
}
作为另一个答案的替代方案,您可以使用.map()
来返回您已更改的数组,而不是使用不返回任何内容的.forEach()
。
let programCopy: Program[];
programCopy = programs.map(p => {
p.number.replace(/^0+/, '');
return p;
});
编辑:这是此代码的较短版本
let programCopy: Program[] = programs.map(p => p.number.replace(/^0+/, ''));
那是因为forEach没有任何返回类型。
如果您想在 programCopy 中存储带有替换数字的对象,只需复制程序参数并更改它们:
programCopy = programs;
programCopy.forEach(p => {
p.number.replace(/^0+/, '');
});
使用以下代替 forEach 循环:
programCopy = programs.filter(p => p !== 0);
您可以使用过滤方法。 它返回过滤项的数组。 现在,programCopy 变量包含不带零的数字。
您可以使用这种方法。
public removeLeadingZeros(programs: Program[]) { let programCopy: Program[]; programs.forEach(p => { programCopy.push(p.number.replace(/^0+/, '')) }); return programCopy; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.