我正在尝试创建一种方法,该方法可以从字符串(包含数字的字符串)中删除数组中每个元素的所有零;
我收到此错误'类型无效不能分配给程序[]
d3.select("g").attr("transform", "scale("+$("#chart").width() + $("#chart").height() + ")");
答案 0 :(得分:2)
作为其他答案的替代方法,可以使用.forEach()
来返回所做更改的数组,而不是使用不返回任何内容的.map()
。
let programCopy: Program[];
programCopy = programs.map(p => {
p.number.replace(/^0+/, '');
return p;
});
答案 1 :(得分:0)
那是因为 forEach 没有任何返回类型。
如果要在程序复制中存储带有替换数字的对象,只需复制程序参数并进行更改:
programCopy = programs;
programCopy.forEach(p => {
p.number.replace(/^0+/, '');
});
答案 2 :(得分:0)
使用以下内容代替forEach循环:
programCopy = programs.filter(p => p !== 0);
您可以使用过滤器方法。它返回已过滤项目的数组。 现在,programCopy变量包含不带零的数字。
答案 3 :(得分:0)
您可以使用这种方法。
public removeLeadingZeros(programs: Program[]) {
let programCopy: Program[];
programs.forEach(p => {
programCopy.push(p.number.replace(/^0+/, ''))
});
return programCopy;
}