角度图。它是什么?

Ant*_*nov 1 dictionary filter angular

我正在学习Angular 6,并且对以下结构感到困惑:

this.contentArray.map((v: string, i: number) => `Content line ${i + 1}`)
Run Code Online (Sandbox Code Playgroud)

或类似:

return this.aService.getItems()
    .pipe(map(response => response.data));
Run Code Online (Sandbox Code Playgroud)

我像《 The_Complete_Book_on_Angular_6》或《 Pro Angular 6》(亚当·弗里曼)(Adam Freeman)一样读这几本书,但是那里没有简单的解释。Google也对此保持沉默。有人可以给出正确和良好的教程,或者是(对于业余爱好者)有关array.map,array.filter.pipe(map(...))的书?

bug*_*ugs 6

第一个是Array.prototype.map,而第二个是rxjs map运算符。

在第一种情况下,您将使用一个现有数组并将一个函数应用于其每个元素

map()方法创建一个新数组,并在调用数组中的每个元素上调用提供的函数。

[1, 2, 3, 4].map(x => x + 2) // [3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

而第二种情况必不可少的是,在可观察世界中,这是同一件事。

将给定的项目函数应用于源Observable发出的每个值,并将结果值作为Observable发出。


Der*_*ğlu 6

在第一个语句中,Map 是 JavaScript 数组函数,它迭代数组的每个项目,以便将对象数组映射到另一个对象数组。

let array = [1,2,3,4,5] ;
let result = array.map(val => val +10); //11,12,13,14,15
Run Code Online (Sandbox Code Playgroud)

在你的第二个声明中,地图来自 rxjs 库。这会将对象映射到另一个对象,但生成的对象将是可观察的。

const source = from([1, 2, 3, 4, 5]); //add 10 to each value const example = source.pipe(map(val => val + 10)); //output: 11,12,13,14,15
Run Code Online (Sandbox Code Playgroud)