小编Nic*_*key的帖子

为什么比较字符串0(n)但比较数字0(1)?

我知道要比较两个字符串是否相等,解释器必须遍历两个字符串并比较每个字符。

这将使时间复杂度0(n),其中n最短字符串的长度。

但是,比较两个数字是否相等是0(1)

这是为什么?解释器是否不必遍历每个数字以检查是否相等?

javascript computer-science equality

8
推荐指数
1
解决办法
560
查看次数

如何在 Typescript 中映射可能为空的数组

我有一个函数,其参数可以是空数组或带有字符串的数组。

所以我用联合类型来处理这个 [] | string[]

然后,在函数内部,我检查 array.length 是否> 0,如果是,则映射参数。

type Kennel = [] | string[]

const petDogs = (kennel: Kennel)  => {
  if (kennel.length > 0){
    return kennel.map((name:string)=>name)
  } else {
    return "no doggies to pet"
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,在编译时,我收到错误

Cannot invoke an expression whose type lacks a call signature. Type '(<U>(callbackfn: (value: never, index: number, array: never[]) => U, thisArg?: any) => U[]) | (<U>(callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[])' has no compatible …

typescript

2
推荐指数
1
解决办法
3605
查看次数