Skip to content

Instantly share code, notes, and snippets.

@code-brewer
Last active October 26, 2019 02:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save code-brewer/5a89f0e7432e5ad655205fdb77c4c83c to your computer and use it in GitHub Desktop.
Save code-brewer/5a89f0e7432e5ad655205fdb77c4c83c to your computer and use it in GitHub Desktop.
rxjs_cdn_version_distinctUntilChanged// source https://jsbin.com/josumud
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>distinctUntilChanged</title>
<!-- <script src="https://npmcdn.com/@reactivex/rxjs@5.0.0-beta.3/dist/global/Rx.umd.js"></script> -->
<script src="https://unpkg.com/rxjs/bundles/rxjs.umd.min.js"> </script>
</head>
<body>
<script id="jsbin-javascript">
"use strict";
var range = rxjs.range, of = rxjs.of, from = rxjs.from;
var _a = rxjs.operators, distinctUntilChanged = _a.distinctUntilChanged, map = _a.map, filter = _a.filter, delay = _a.delay;
// only output distinct values, based on the last emitted value
var source$ = from([
{ name: 'Brian' },
{ name: 'Joe' },
{ name: 'Joe' },
{ name: 'Sue' }
]);
source$
.pipe(distinctUntilChanged(function (prev, curr) { return prev.name === curr.name; }))
.subscribe(console.log);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNiaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJqc2Jpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQVEsc0JBQUssRUFBRSxZQUFFLEVBQUUsZ0JBQUksQ0FBVTtBQUVqQyxJQUFBLG1CQUFtRSxFQUEzRCw4Q0FBb0IsRUFBRSxZQUFHLEVBQUUsa0JBQU0sRUFBRSxnQkFBSyxDQUFvQjtBQUVwRSwrREFBK0Q7QUFDL0QsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ25CLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtJQUNqQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7SUFDZixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7SUFDZixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7Q0FDaEIsQ0FBQyxDQUFDO0FBRUgsT0FBTztLQUVKLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFDLElBQUksRUFBRSxJQUFJLElBQUssT0FBQSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQXZCLENBQXVCLENBQUMsQ0FBQztLQUVuRSxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyByYW5nZSwgb2YsIGZyb20gfSA9IHJ4anM7XG5cbmNvbnN0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgZmlsdGVyLCBkZWxheSB9ID0gcnhqcy5vcGVyYXRvcnM7XG5cbi8vIG9ubHkgb3V0cHV0IGRpc3RpbmN0IHZhbHVlcywgYmFzZWQgb24gdGhlIGxhc3QgZW1pdHRlZCB2YWx1ZVxuY29uc3Qgc291cmNlJCA9IGZyb20oW1xuICB7IG5hbWU6ICdCcmlhbicgfSxcbiAgeyBuYW1lOiAnSm9lJyB9LFxuICB7IG5hbWU6ICdKb2UnIH0sXG4gIHsgbmFtZTogJ1N1ZScgfVxuXSk7XG5cbnNvdXJjZSRcbiAgLy8gY3VzdG9tIGNvbXBhcmUgZm9yIG5hbWVcbiAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXYsIGN1cnIpID0+IHByZXYubmFtZSA9PT0gY3Vyci5uYW1lKSlcbiAgLy8gb3V0cHV0OiB7IG5hbWU6ICdCcmlhbiB9LCB7IG5hbWU6ICdKb2UnIH0sIHsgbmFtZTogJ1N1ZScgfVxuICAuc3Vic2NyaWJlKGNvbnNvbGUubG9nKTsiXX0=
</script>
<script id="jsbin-source-javascript" type="text/javascript">const { range, of, from } = rxjs;
const { distinctUntilChanged, map, filter, delay } = rxjs.operators;
// only output distinct values, based on the last emitted value
const source$ = from([
{ name: 'Brian' },
{ name: 'Joe' },
{ name: 'Joe' },
{ name: 'Sue' }
]);
source$
// custom compare for name
.pipe(distinctUntilChanged((prev, curr) => prev.name === curr.name))
// output: { name: 'Brian }, { name: 'Joe' }, { name: 'Sue' }
.subscribe(console.log);
</script></body>
</html>
"use strict";
var range = rxjs.range, of = rxjs.of, from = rxjs.from;
var _a = rxjs.operators, distinctUntilChanged = _a.distinctUntilChanged, map = _a.map, filter = _a.filter, delay = _a.delay;
// only output distinct values, based on the last emitted value
var source$ = from([
{ name: 'Brian' },
{ name: 'Joe' },
{ name: 'Joe' },
{ name: 'Sue' }
]);
source$
.pipe(distinctUntilChanged(function (prev, curr) { return prev.name === curr.name; }))
.subscribe(console.log);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNiaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJqc2Jpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQVEsc0JBQUssRUFBRSxZQUFFLEVBQUUsZ0JBQUksQ0FBVTtBQUVqQyxJQUFBLG1CQUFtRSxFQUEzRCw4Q0FBb0IsRUFBRSxZQUFHLEVBQUUsa0JBQU0sRUFBRSxnQkFBSyxDQUFvQjtBQUVwRSwrREFBK0Q7QUFDL0QsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ25CLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtJQUNqQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7SUFDZixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7SUFDZixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7Q0FDaEIsQ0FBQyxDQUFDO0FBRUgsT0FBTztLQUVKLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFDLElBQUksRUFBRSxJQUFJLElBQUssT0FBQSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQXZCLENBQXVCLENBQUMsQ0FBQztLQUVuRSxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyByYW5nZSwgb2YsIGZyb20gfSA9IHJ4anM7XG5cbmNvbnN0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgZmlsdGVyLCBkZWxheSB9ID0gcnhqcy5vcGVyYXRvcnM7XG5cbi8vIG9ubHkgb3V0cHV0IGRpc3RpbmN0IHZhbHVlcywgYmFzZWQgb24gdGhlIGxhc3QgZW1pdHRlZCB2YWx1ZVxuY29uc3Qgc291cmNlJCA9IGZyb20oW1xuICB7IG5hbWU6ICdCcmlhbicgfSxcbiAgeyBuYW1lOiAnSm9lJyB9LFxuICB7IG5hbWU6ICdKb2UnIH0sXG4gIHsgbmFtZTogJ1N1ZScgfVxuXSk7XG5cbnNvdXJjZSRcbiAgLy8gY3VzdG9tIGNvbXBhcmUgZm9yIG5hbWVcbiAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXYsIGN1cnIpID0+IHByZXYubmFtZSA9PT0gY3Vyci5uYW1lKSlcbiAgLy8gb3V0cHV0OiB7IG5hbWU6ICdCcmlhbiB9LCB7IG5hbWU6ICdKb2UnIH0sIHsgbmFtZTogJ1N1ZScgfVxuICAuc3Vic2NyaWJlKGNvbnNvbGUubG9nKTsiXX0=
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment