Skip to content

Instantly share code, notes, and snippets.

View nabrown's full-sized avatar

Nora Brown nabrown

View GitHub Profile
@nabrown
nabrown / Utils.spec.js
Created April 9, 2018 12:49
A test for a function getRandosFromArray
test('getRandosFromArray returns an array of n random items from an array', () => {
let array = [{id: 1}, {id: 2}, {id: 3}, {id: 4}, {id: 5}, {id: 6}, {id: 7}, {id: 8}, {id: 9}]
let n = 2
let items = utils.getRandosFromArray(array, n)
expect(items.length).toBe(n)
expect(array).toContain(items[0])
expect(array).toContain(items[1])
})
@nabrown
nabrown / Utils.1.0.js
Last active April 9, 2018 12:53
An incorrect implementation of a getRandosFromArray function
export const getRandosFromArray = function(arr, numRandos){
let arrClone = arr.slice(0)
let randos = []
for (let i = 0; i < numRandos; i++){
let rand = Math.floor(Math.random() * arrClone.length)
randos.push(arrClone.splice(rand,1))
}
return randos
}
@nabrown
nabrown / Utils.1.1.js
Last active April 9, 2018 12:59
One working implementation of getRandosFromArray function
export const getRandosFromArray = function(arr, numRandos){
let arrClone = arr.slice(0)
let randos = []
for (let i = 0; i < numRandos; i++){
let rand = Math.floor(Math.random() * arrClone.length)
randos.push(arrClone.splice(rand,1)[0]) // splice returns a new array
}
return randos
}
@nabrown
nabrown / Utils.2.0.js
Last active April 9, 2018 13:28
Another implementation of getRandosFromArray function, using shuffled array
export const getRandosFromArray = function(arr, numRandos){
let arrClone = array.slice(0)
let shuffled = arrClone.sort(function() { return .5 - Math.random() })
let randos = shuffled.slice(0, numRandos)
return randos
}
@nabrown
nabrown / Utils.2.1.js
Created April 9, 2018 13:05
Another implementation of getRandosFromArray, using an efficient shuffle function
export const getRandosFromArray = function(arr, numRandos){
let arrClone = arr.slice(0)
let shuffled = shuffle(arrClone)
let randos = shuffled.slice(0, numRandos)
return randos
}
// https://bost.ocks.org/mike/shuffle/
const shuffle = function(array) {
var m = array.length, t, i;
@nabrown
nabrown / grams-final.html
Last active June 21, 2020 22:46
Instagram Gallery - Complete
<!DOCTYPE html>
<html>
<head>
<title>Instagram Gallery</title>
<script src="https://unpkg.com/vue@2.5.16/dist/vue.min.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<style type="text/css">
:root{
--color: #95e9ef;
--background: #1f1f1f;
@nabrown
nabrown / grams-shell.html
Created June 4, 2018 20:33
Instagram Gallery Shell
<!DOCTYPE html>
<html>
<head>
<title>Instagram Gallery</title>
<script src="https://unpkg.com/vue@2.5.16/dist/vue.min.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<style type="text/css">
@nabrown
nabrown / grams-app-body.html
Last active June 5, 2018 18:17
Instagram Gallery HTML
<div id="app">
<h1><a :href="instapage">@{{ username }} on instagram</a></h1>
<template v-if="grams.length > 0">
<div v-for="(gram, index) in grams">
<a :href="gram.link">
<img :src="gram.images.standard_resolution.url" :alt="gram.text" />
</a>
</div>
</template>
<div v-else class="loading"></div>
@nabrown
nabrown / grams-vue.js
Last active June 5, 2018 18:17
Instagram Gallery Vue javascript
var app = new Vue({
el: '#app',
data: {
access_token: "your access token here",
url: "https://api.instagram.com/v1/users/self/media/recent/",
username: "",
grams: [],
next_url: "",
error: false
},
@nabrown
nabrown / grams-styles.css
Last active June 5, 2018 18:05
Instagram gallery styles with CSS Grid
:root{
--color: #95e9ef;
--background: #1f1f1f;
--spacing: 1rem;
--speed: 1700ms;
--fontsize: 2rem;
}
body{
margin: 0;
padding: var(--spacing);