Javascript: пропустить действие в операторе if - PullRequest
0 голосов
/ 16 апреля 2020

Я запачкаю руки Rx js с некоторыми строками и объектами, чтобы изучить его.

Я пытаюсь динамически создавать ключ / значения в пустом объявленном объекте, используя строковая переменная.

В этом подходе я хочу сделать следующее: выполнить итерацию всей строки, включая пробелы и запятые.

Если в объекте уже есть буква, увеличьте ее значение, в противном случае добавьте ее.

Итак, я придумал следующий фрагмент кода. Пожалуйста, отметьте это в StackBLitz.

https://stackblitz.com/edit/rxjs-js-letttesr-cool-commas-not-cool?file=index.js

Спасибо.

1 Ответ

1 голос
/ 22 апреля 2020
import { ReplaySubject, from } from "rxjs";
import { tap, reduce } from "rxjs/operators";

// string
const str =  "I am afraid I can not do that, Dave";
//string no spaces
let strNoSpace = str.replace(/\s+/g, ''); 

from(strNoSpace).pipe(
  reduce((acc, value) => {
    if(acc[value] !== undefined) {
      acc[value] = acc[value] + 1;
    } else {
      acc[value] = 1;
    }
    return acc;
  }, {}),
).subscribe(console.log);

стекаблиц

...