【问题标题】:Remove duplicates from array in typescript从打字稿中的数组中删除重复项
【发布时间】:2020-11-29 00:27:33
【问题描述】:

我是 typescript 的新手,在使用我的 javascript 技能时遇到了一些问题。例如,有人可以帮我在下面用 typescript 编写完全相同的 javascript 代码吗?

如果根本不可能,任何将呈现预期输出的打字稿函数(没有重复值的数组)。

这只是从数组中删除重复项的简单方法,但似乎打字稿不允许我定义一个空对象......我不确定......

下面代码的输出是:['John', 'Paul', 'George', 'Ringo']

谢谢!

const names = ['John', 'Paul', 'George', 'Ringo', 'John'];

function removeDups(names) {
  let unique = {};
  names.forEach(function(i) {
    if(!unique[i]) {
      unique[i] = true;
    }
  });
  return Object.keys(unique);
}

removeDups(names)

【问题讨论】:

  • 所有 javascript 都是正确的打字稿
  • @frozen 当您启用 strict 编译标志时不会出现,这是 tsc --init 的默认值...

标签: javascript typescript ecmascript-6


【解决方案1】:

在这种情况下,您只需添加类型

const names = ['John', 'Paul', 'George', 'Ringo', 'John'];

function removeDups(names: string[]) {
  let unique: any = {};
  names.forEach(function(i: string) {
    if(!unique[i]) {
      unique[i] = true;
    }
  });
  return Object.keys(unique);
}

removeDups(names)

typescript playground

【讨论】:

    【解决方案2】:
    names = ['John', 'Paul', 'George', 'Ringo', 'John']; 
    
    removeDups(names) {
     let unique = {};
      this.names.forEach((i) => {
        if(!unique[i]) {
          unique[i] = true;
        }
      });
      return Object.keys(unique);
    }
    

    然后从你想要的地方拨打removeDups

    这里是another way

    names = ['John', 'Paul', 'George', 'Ringo', 'John']; 
    
    removeDups(names) {
    
      return this.names.filter((elem, index, self)=> {
        return index === self.indexOf(elem);
    })
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-01
      • 1970-01-01
      • 2022-06-10
      • 2018-08-20
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      相关资源
      最近更新 更多