类型void无法分配给数组

时间:2020-07-15 12:19:13

标签: angular

我正在尝试创建一种方法,该方法可以从字符串(包含数字的字符串)中删除数组中每个元素的所有零;

我收到此错误'类型无效不能分配给程序[]

d3.select("g").attr("transform", "scale("+$("#chart").width() + $("#chart").height() + ")");

4 个答案:

答案 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;
  }