【发布时间】:2019-06-29 10:13:55
【问题描述】:
这是来自文档的示例代码。我是 RXJS 的新手,所以这可能真的很容易。
谁能解释 map 运算符在对数组进行操作后如何返回一位整数?
我检查了扫描运算符的返回值是一个从[0],[0,1],[0,1,2],[0,1,2,3] ....和以此类推。
// RxJS v6+
import { interval } from 'rxjs';
import { scan, map, distinctUntilChanged } from 'rxjs/operators';
// Accumulate values in an array, emit random values from this array.
const scanObs = interval(1000)
.pipe(
scan((a, c) => [...a, c], []),
map(r => r[Math.floor(Math.random() * r.length)]),
distinctUntilChanged()
)
.subscribe(console.log);
【问题讨论】:
-
map此处将r(数组)映射到该数组r[...]中的单个项目。所以它需要一个数组(number[])作为输入并输出一个随机项(number)。 -
但是 map 在数组上的工作方式,它不应该获取数组的每个元素并执行操作并将其存储在数组中并返回数组。 Map通常对数组的每个值进行操作并返回数组
标签: javascript rxjs rxjs6 rxjs-pipeable-operators