{"id":19006907,"url":"https://github.com/yowainwright/go-slice-funcs","last_synced_at":"2026-06-30T14:32:04.999Z","repository":{"id":66114060,"uuid":"536900215","full_name":"yowainwright/go-slice-funcs","owner":"yowainwright","description":"Golang slice functions","archived":false,"fork":false,"pushed_at":"2023-04-24T06:19:30.000Z","size":40,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-21T14:30:57.597Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yowainwright.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-15T06:51:29.000Z","updated_at":"2022-09-19T07:23:32.000Z","dependencies_parsed_at":"2024-06-19T15:54:06.969Z","dependency_job_id":"42fb2b14-f2e8-44da-a34b-84e69ffa0218","html_url":"https://github.com/yowainwright/go-slice-funcs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yowainwright/go-slice-funcs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yowainwright%2Fgo-slice-funcs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yowainwright%2Fgo-slice-funcs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yowainwright%2Fgo-slice-funcs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yowainwright%2Fgo-slice-funcs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yowainwright","download_url":"https://codeload.github.com/yowainwright/go-slice-funcs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yowainwright%2Fgo-slice-funcs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34971619,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-30T02:00:05.919Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T18:35:00.946Z","updated_at":"2026-06-30T14:32:04.942Z","avatar_url":"https://github.com/yowainwright.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Go Slice Funcs\n\nSlice functions written in Go.\n\nThis repository is for learning purposes.\n\n### Goals:\n\n- Build a distributable library\n- Improve my Go Lang skills\n- Implement common CI features using Go Lang\n\n---\n\n## Installation\n\n```sh\ngo get github.com/yowainwright/go-slice-funcs\n```\n\n---\n\n## Usage\n\n```go\nimport \"github.com/yowainwright/go-slice-funcs/SliceMap\"\n\nfunc main() {\n    // ...\n    SliceMap([]string{\"a\", \"b\", \"c\"}, func(s string) string {\n        return s + \"!\"\n    })\n    // =\u003e [\"a!\", \"b!\", \"c!\"]\n}\n```\n\n---\n## Functions\n\nEach function is built to mimic the native JS function within Go Lang constraints.\n\n---\n### `SliceMap`\n\n`SliceMap` is similar to `Array.prototype.map` in JavaScript.\n\n\u003e `SliceMap[T any](data []T, f func(T) T) []T`\n\nIt takes in a generic slice and a function to run operations on each element of the slice, returning a new slice with the mapped result.\n\n```go\nSliceMap([]string{\"a\", \"b\", \"c\"}, func(s string) string {\n    return s + \"!\"\n})\n// =\u003e [\"a!\", \"b!\", \"c!\"]\n```\n\n---\n\n### `SliceFilter`\n\n`SliceFilter` is similar to `Array.prototype.filter` in JavaScript.\n\n\u003e `SliceFilter[T any](data []T, f func(T) bool) []T`\n\nIt takes in a generic slice and a function to run operations on each element of the slice, returning a new slice with the filtered result.\n\n```go\nSliceFilter([]string{\"a\", \"b\", \"c\", \"a\"}, func(s string) bool {\n    return s == \"a\"\n})\n// =\u003e [\"a\", \"a\"]\n```\n\n---\n\n### `SliceFind`\n\n`SliceFind` is similar to `Array.prototype.find` in JavaScript.\n\n\u003e `SliceFind[T any](data []T, f func(T) bool) T`\n\n```go\nSliceFind([]string{\"a\", \"b\", \"c\", \"a\"}, func(s string) bool {\n    return s == \"a\"\n})\n// =\u003e \"a\"\n```\n\n---\n\n### `SliceReduce`\n\n`SliceReduce` is similar to `Array.prototype.reduce` in JavaScript.\n\n\u003e `SliceReduce[T any](data []T, f func(T, T) T) T`\n\n```go\nSliceReduce([]string{\"a\", \"b\", \"c\"}, func(a, b string) string {\n    return a + b\n})\n// =\u003e \"abc\"\n```\n\n---\n\n### `SliceForEach`\n\n`SliceForEach` is similar to `Array.prototype.forEach` in JavaScript.\n\n\u003e `SliceForEach[T any](data []T, f func(T))`\n\n```go\nvar word = \"\"\nSliceForEach([]string{\"a\", \"b\", \"c\"}, func(s string) {\n    word += s\n    return\n})\n// word =\u003e \"abc\"\n```\n\n### `SliceIncludes`\n\n`SliceIncludes` is similar to `Array.prototype.includes` in JavaScript.\n\n\u003e `SliceIncludes[T any](data []T, f func(T) bool) bool`\n\n```go\nSliceIncludes([]string{\"a\", \"b\", \"c\"}, func(s string) bool {\n    return s == \"a\"\n})\n// =\u003e true\n```\n\n---\n\n## Development\n\nsetup\n```sh\n.bin/setup.sh\n# sets up brew, go, and pre-commit\n```\n\nsetup for coding\n```sh\ngo get ./... \u0026\u0026 go mod tidy \u0026\u0026 go mod vendor\n```\n\nrunning unit tests\n```sh\ngo test ./...\n```\n\n\n---\n\n## Roadmap\n\n- Complete all/most of the JS Array Prototype functions\n- Add more config\n  - Github config files\n\n---\n\nMade by [@yowainwright](https://github.com/yowainwright), MIT 2022\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyowainwright%2Fgo-slice-funcs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyowainwright%2Fgo-slice-funcs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyowainwright%2Fgo-slice-funcs/lists"}