{"id":13426093,"url":"https://github.com/vlandham/js_data","last_synced_at":"2026-02-04T13:23:02.380Z","repository":{"id":28027556,"uuid":"31522833","full_name":"vlandham/js_data","owner":"vlandham","description":"Data manipulation and processing in JavaScript","archived":false,"fork":false,"pushed_at":"2019-01-11T16:51:48.000Z","size":6026,"stargazers_count":637,"open_issues_count":6,"forks_count":145,"subscribers_count":33,"default_branch":"master","last_synced_at":"2024-04-13T16:04:55.561Z","etag":null,"topics":["data-manipulation","javascript","js-data"],"latest_commit_sha":null,"homepage":"http://learnjsdata.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vlandham.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-02T04:05:09.000Z","updated_at":"2024-03-31T17:21:16.000Z","dependencies_parsed_at":"2022-09-04T09:11:07.877Z","dependency_job_id":null,"html_url":"https://github.com/vlandham/js_data","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlandham%2Fjs_data","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlandham%2Fjs_data/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlandham%2Fjs_data/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlandham%2Fjs_data/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vlandham","download_url":"https://codeload.github.com/vlandham/js_data/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243792279,"owners_count":20348606,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["data-manipulation","javascript","js-data"],"created_at":"2024-07-31T00:01:26.174Z","updated_at":"2026-02-04T13:23:02.337Z","avatar_url":"https://github.com/vlandham.png","language":"JavaScript","readme":"# Learn JS Data\n\n+ [Live version](http://learnjsdata.com/)\n+ [Observable version](https://beta.observablehq.com/@dakoop/learn-js-data)\n\nData manipulation, data cleaning, and data processing in JavaScript.\n\n## About\n\nThis guide teaches the basics of manipulating data using JavaScript in the\nbrowser, or in node.js. Specifically, these tasks are geared around preparing\ndata for further analysis and visualization.\n\nThis guide will demonstrate some basic techniques and how to implement them\nusing core JavaScript API, the [d3.js](http://d3js.org/) library and [lodash](http://lodash.com/).\n\nIt assumes you already have some basic knowledge of JavaScript.\n\n## Contribute\n\nThanks to everyone who has worked on this to make it awesome:\n\n- [Jim Vallandingham](https://twitter.com/vlandham)\n- [Irene Ros](https://twitter.com/ireneros)\n- [Timo Grossenbacher](https://twitter.com/grssnbchr)\n- [Adam Pearce](https://twitter.com/adamrpearce)\n- [Kanit Ham Wong](https://twitter.com/kanitw)\n- [Yannick Assogba](https://twitter.com/tafsiri)\n- [Earle Castledine](https://twitter.com/mrspeaker)\n- [Lynn Cherny](https://twitter.com/arnicas)\n\nWant to add your own tips and tricks that you use to apply the power of JS to data processing?\n\nFork this project, modify and send me your pull requests!\n\n_(Or you could probably just yell at me on Twitter - and I can include your suggestions into the guide)_\n\n## Building\n\nIf you want to hack on this - or just download and run locally, here is how you would do that.\n\nRequirements:\n\n* node\n* npm\n* grunt (to rebuild)\n\nFirst clone the repo:\n\n```\ngit clone git@github.com:vlandham/js_data.git\n```\n\nThen run `npm install` to gather development dependencies:\n\n```\ncd js_data\nnpm install\n```\n\nYou can now use grunt to do the following:\n\n* Run `grunt` to start a watch task that will recompile things as needed, and kick off a local server on port 8081.\n* Run `grunt build` just to build the `public/` directory containing all the output.\n\n## Previous Work\n\nThis takes inspiration from a number of similar projects around data manipulation geared towards users of other languages. Here are just some other resources to checkout:\n\n- [Python Code Notebooks](http://nbviewer.ipython.org/github/chrisalbon/code_py/tree/master/) - by Chris Albon\n- [R Code Notebooks](https://github.com/chrisalbon/code_r) - also by Chris Albon\n\nThe presentation format of this repo borrows heavily from Tom MacWright's [Literate Raytracer](https://github.com/tmcw/literate-raytracer) repo.\n\n## License\n\nThis code and accompanying text is released under CC0, or Public Domain where applicable.\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvlandham%2Fjs_data","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvlandham%2Fjs_data","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvlandham%2Fjs_data/lists"}