小编Rob*_*rny的帖子

在Flow中过滤Maybe(可空)类型数组以删除空值

我有一个Maybe(可空)类型的数组,我想过滤那些null有一个只包含非空值的数组:

@flow

type Foo = {
  foo: string
}

const bar: Array<?Foo> = [ null, { foo: 'Qux' } ]

const baz = bar
  .filter(x => x != null)
  .map(({ foo }) => foo);
Run Code Online (Sandbox Code Playgroud)

然而,流程抱怨论证仍然可以null,但显然不能:

11: .map(({ foo }) => foo);
            ^ property `foo`. Property cannot be accessed on possibly null value
Run Code Online (Sandbox Code Playgroud)

请参阅flow.org/try上的代码.

有没有办法告诉流量数组现在只包含不可为空的项目?

这破坏了我的函数式JavaScript编程.

javascript functional-programming flowtype

5
推荐指数
1
解决办法
827
查看次数

按属性对对象数组进行排序以匹配提供的列表

给定一个对象数组和一个值列表,我想有效地对对象进行排序,以便唯一属性的值(比如key)遵循列表中值的顺序。

所以对于一个数组:

const users = [
  { key: 'A', name: 'Alice' },
  { key: 'B', name: 'Bob' },
  { key: 'C', name: 'Charlie' },
]
Run Code Online (Sandbox Code Playgroud)

我希望函数的行为是这样的:

sortByList(['A', 'B', 'C'], users)
// -> Objects for Alice, Bob, Charlie

sortByList(['C', 'B', 'A'], users)
// -> Objects for Charlie, Bob, Alice

sortByList(['A', 'C', 'B'], users)
// -> Objects for Alice, Charlie, Bob
Run Code Online (Sandbox Code Playgroud)

我想出了一个Array::sort在数组上使用然后在Array::indexOf列表中使用的实现。

const users = [
  { key: 'A', name: 'Alice' },
  { key: 'B', name: …
Run Code Online (Sandbox Code Playgroud)

javascript arrays sorting

3
推荐指数
1
解决办法
210
查看次数