{"action":"created","issue":{"url":"https://api.github.com/repos/zenparsing/es-observable/issues/58","labels_url":"https://api.github.com/repos/zenparsing/es-observable/issues/58/labels{/name}","comments_url":"https://api.github.com/repos/zenparsing/es-observable/issues/58/comments","events_url":"https://api.github.com/repos/zenparsing/es-observable/issues/58/events","html_url":"https://github.com/zenparsing/es-observable/issues/58","id":106301208,"number":58,"title":"Add a few more combinators","user":{"login":"impinball","id":4483844,"avatar_url":"https://avatars.githubusercontent.com/u/4483844?v=3","gravatar_id":"","url":"https://api.github.com/users/impinball","html_url":"https://github.com/impinball","followers_url":"https://api.github.com/users/impinball/followers","following_url":"https://api.github.com/users/impinball/following{/other_user}","gists_url":"https://api.github.com/users/impinball/gists{/gist_id}","starred_url":"https://api.github.com/users/impinball/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/impinball/subscriptions","organizations_url":"https://api.github.com/users/impinball/orgs","repos_url":"https://api.github.com/users/impinball/repos","events_url":"https://api.github.com/users/impinball/events{/privacy}","received_events_url":"https://api.github.com/users/impinball/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-09-14T09:12:13Z","updated_at":"2015-09-14T12:33:06Z","closed_at":null,"body":"I can see there's these methods adapted from the Array prototype:\r\n\r\n- `filter -> Observable`\r\n- `forEach -> Observable`\r\n- `map -> Observable`\r\n\r\nCouldn't we fill out some of the rest of the methods? It would be really nice and useful, especially for finite observables.\r\n\r\n- `concat -> Observable`\r\n    - this observable followed by that observable\r\n- `entries -> Observable<[T, T]>` (like Set's `Iterator<[T, T]>`)\r\n- `every -> Promise<boolean>`\r\n    - if every entry works with that predicate\r\n- `find -> Promise<T>`\r\n- `includes -> Promise<boolean>`\r\n- `join -> Promise<string>`\r\n- `keys -> Observable`\r\n- `reduce -> Promise<T>`\r\n- `some -> Promise<T>`\r\n- `values -> Observable`\r\n\r\nThese are ones I wouldn't really miss too much because there isn't a lot of applicability for them:\r\n\r\nIndices don't make sense with observables.\r\n\r\n- `Array.prototype.findIndex()`\r\n- `Array.prototype.indexOf()`\r\n- `Array.prototype.slice()`\r\n\r\nThese would require at worst case a full evaluation of the observables to be in memory to create a proper counterpart.\r\n\r\n- `Array.prototype.lastIndexOf()`\r\n- `Array.prototype.reduceRight()`\r\n- `Array.prototype.reverse()`\r\n- `Array.prototype.sort()`\r\n\r\nMutable Array methods don't make sense with observables.\r\n\r\n- `Array.prototype.copyWithin()`\r\n- `Array.prototype.fill()`\r\n- `Array.prototype.pop()`\r\n- `Array.prototype.push()`\r\n- `Array.prototype.shift()`\r\n- `Array.prototype.splice()`\r\n- `Array.prototype.toLocaleString()`\r\n- `Array.prototype.toSource()`\r\n- `Array.prototype.unshift()`\r\n\r\nI'm not sure if this is really necessary. If it is, it probably should be comparable to `Array.prototype.join()`.\r\n\r\n- `Array.prototype.toString()`"},"comment":{"url":"https://api.github.com/repos/zenparsing/es-observable/issues/comments/140055633","html_url":"https://github.com/zenparsing/es-observable/issues/58#issuecomment-140055633","issue_url":"https://api.github.com/repos/zenparsing/es-observable/issues/58","id":140055633,"user":{"login":"impinball","id":4483844,"avatar_url":"https://avatars.githubusercontent.com/u/4483844?v=3","gravatar_id":"","url":"https://api.github.com/users/impinball","html_url":"https://github.com/impinball","followers_url":"https://api.github.com/users/impinball/followers","following_url":"https://api.github.com/users/impinball/following{/other_user}","gists_url":"https://api.github.com/users/impinball/gists{/gist_id}","starred_url":"https://api.github.com/users/impinball/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/impinball/subscriptions","organizations_url":"https://api.github.com/users/impinball/orgs","repos_url":"https://api.github.com/users/impinball/repos","events_url":"https://api.github.com/users/impinball/events{/privacy}","received_events_url":"https://api.github.com/users/impinball/received_events","type":"User","site_admin":false},"created_at":"2015-09-14T12:33:06Z","updated_at":"2015-09-14T12:33:06Z","body":"And that's what I get for copying the list off the side bar of MDN\nblindly... :-(\n\nI think you all know what I meant, though. ;-)\n\nOn Mon, Sep 14, 2015, 06:42 Jordan Harband <notifications@github.com> wrote:\n\n> (some small nits: Array#reverse and Array#sort are mutator methods, and\n> Array#toSource isn't in the standard)\n>\n> —\n> Reply to this email directly or view it on GitHub\n> <https://github.com/zenparsing/es-observable/issues/58#issuecomment-140033806>\n> .\n>\n"}}