Javascript 如何根据第一个流对两个流进行分组和组合?

Javascript 如何根据第一个流对两个流进行分组和组合?,javascript,reactive-programming,rxjs,reactive-cocoa,Javascript,Reactive Programming,Rxjs,Reactive Cocoa,我想根据第一个流的值对两个流进行分组和组合。用一个具体的例子来说明, 每当第一个流发生更改时,我希望将值与第二个流合并,但跳过下一个值(即图中的值1、3和6) 我在iOS上使用ReactiveCocoa,但欢迎使用其他反应式框架的示例。我当前在ReactiveCocoa中的实现: var cook=MutableProperty(“”) var成分=可变属性(“”) cook.signal.observeNext{cook in 打印(“>”,库克) } 让skipFirst=cook.sig

我想根据第一个流的值对两个流进行分组和组合。用一个具体的例子来说明,

每当第一个流发生更改时,我希望将值与第二个流合并,但跳过下一个值(即图中的值1、3和6)


我在iOS上使用ReactiveCocoa,但欢迎使用其他反应式框架的示例。

我当前在ReactiveCocoa中的实现:

var cook=MutableProperty(“”)
var成分=可变属性(“”)
cook.signal.observeNext{cook in
打印(“>”,库克)
}
让skipFirst=cook.signal
.flatMap(.latest){cookValue in
返回信号
.map{IngCreditValue在中
“\(cookValue)\(IngCreditValue)”
}
.跳过(第一:1)
}
skipFirst.observeNext{str in
打印(“>>”,str)
}
//发送值
cook.value=“烧烤”
component.value=“芦笋”
配料.value=“牛肉”
cook.value=“油炸”
component.value=“冰淇淋”
component.value=“甜甜圈”
component.value=“鞋”
cook.value=“蒸汽”
component.value=“鸡蛋”
component.value=“莴苣”
这张照片是:

> grill
>> grill beef
> fry
>> fry donut
>> fry shoe
> steam
>> steam lettuce
但这意味着,如果我还想使用每组的第一个值,我必须重复
flatMap
转换,这似乎不是很枯燥

cook.signal
.flatMap(.latest){cookValue in
返回信号
.map{IngCreditValue在中
“\(cookValue)\(IngCreditValue)”
}
.采取(第一:1)
}
.observeNext{str in
打印(“***>”,str)
}

我在ReactiveCocoa中的当前实现:

var cook=MutableProperty(“”)
var成分=可变属性(“”)
cook.signal.observeNext{cook in
打印(“>”,库克)
}
让skipFirst=cook.signal
.flatMap(.latest){cookValue in
返回信号
.map{IngCreditValue在中
“\(cookValue)\(IngCreditValue)”
}
.跳过(第一:1)
}
skipFirst.observeNext{str in
打印(“>>”,str)
}
//发送值
cook.value=“烧烤”
component.value=“芦笋”
配料.value=“牛肉”
cook.value=“油炸”
component.value=“冰淇淋”
component.value=“甜甜圈”
component.value=“鞋”
cook.value=“蒸汽”
component.value=“鸡蛋”
component.value=“莴苣”
这张照片是:

> grill
>> grill beef
> fry
>> fry donut
>> fry shoe
> steam
>> steam lettuce
但这意味着,如果我还想使用每组的第一个值,我必须重复
flatMap
转换,这似乎不是很枯燥

cook.signal
.flatMap(.latest){cookValue in
返回信号
.map{IngCreditValue在中
“\(cookValue)\(IngCreditValue)”
}
.采取(第一:1)
}
.observeNext{str in
打印(“***>”,str)
}

在javascript中,它类似于(尽管未经测试):

这应该做什么:

  • 对于每个传入的a,听b,跳过第一个b,把b和a放在一起
您有以下限制:

  • b一定是个热门话题

顺便说一句,这是一个很好的图表。

在javascript中,它类似于(但未经测试):

这应该做什么:

  • 对于每个传入的a,听b,跳过第一个b,把b和a放在一起
您有以下限制:

  • b一定是个热门话题
顺便说一下,这张图不错