Skip to content

Instantly share code, notes, and snippets.

@grej
Created October 25, 2017 19:58
Show Gist options
  • Save grej/4ca21d9a4fa7d5c87107cb5b8374cd2b to your computer and use it in GitHub Desktop.
Save grej/4ca21d9a4fa7d5c87107cb5b8374cd2b to your computer and use it in GitHub Desktop.
JS Bin // source http://jsbin.com/vafuzav
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<script id="jsbin-javascript">
// const a = [
// [1, 2, 3, 4], // row 0 of data
// [0, 1, 1, 0], // row 1 of data
// [1, 2, 3, 4],
// [1, 1, 1, 0]
// ];
// const addToCompFn = (key, conditionsObject, condF) => {
// const addCondition = (cond) => {
// if (condF) {
// condF = condF && cond;
// } else {
// condF = cond;
// }
// }
// if (key[conditionsObject].gte) {
// addCondition((v) => v >= conditions[c].gte);
// }
// if (key[conditionsObject].lte) {
// addCondition((v) => v <= conditions[c].lte);
// }
// return condF;
// }
// const getComparison = (conditions) => {
// let condF;
// for (key in conditions) {
// condF = addToCompFn(key, conditions, condF)
// }
// return condF;
// }
// const cObj = {
// 0: {
// gte: 1,
// lte: 3
// }
// }
// const validIdxs = (validIdxArray) => {
// return validIdxArray.reduce((a, validIdxArray) => {
// let len = a.length;
// let temp = new Array(len);
// for(let i = 0; i < len; i++) {
// temp[i] = a[i] && b[i]
// }
// return temp;
// })
// }
const truths = [];
let numPoints = 1000;
const generateTruthVector = (numPoints) => {
let myArr = new Array(numPoints);
for (let i=0; i<numPoints; i++) {
myArr[i] = Number(Boolean(Math.random() > 0.5))
}
return myArr;
}
truths.push(generateTruthVector(numPoints))
truths.push(generateTruthVector(numPoints))
truths.push(generateTruthVector(numPoints))
truths.push(generateTruthVector(numPoints))
truths.push(generateTruthVector(numPoints))
const getValidIdxs = (validIdxMatrix) => {
let len = validIdxMatrix[0].length;
let temp = new Array(len);
return validIdxMatrix.reduce((a, b) => {
a.forEach((val, idx) => {
temp[idx] = val * b[idx]
})
return temp;
})
}
let valids = getValidIdxs(truths)
let validIdxs = valids.reduce((validArr, value, idxToCheck) => {
if (value) {
validArr.push(idxToCheck);
}
return validArr;
}, []);
console.log(validIdxs.length, validIdxs)
// sample a random index out of the array
console.log(validIdxs[Math.random() * validIdxs.length >> 0]);
</script>
<script id="jsbin-source-javascript" type="text/javascript">// const a = [
// [1, 2, 3, 4], // row 0 of data
// [0, 1, 1, 0], // row 1 of data
// [1, 2, 3, 4],
// [1, 1, 1, 0]
// ];
// const addToCompFn = (key, conditionsObject, condF) => {
// const addCondition = (cond) => {
// if (condF) {
// condF = condF && cond;
// } else {
// condF = cond;
// }
// }
// if (key[conditionsObject].gte) {
// addCondition((v) => v >= conditions[c].gte);
// }
// if (key[conditionsObject].lte) {
// addCondition((v) => v <= conditions[c].lte);
// }
// return condF;
// }
// const getComparison = (conditions) => {
// let condF;
// for (key in conditions) {
// condF = addToCompFn(key, conditions, condF)
// }
// return condF;
// }
// const cObj = {
// 0: {
// gte: 1,
// lte: 3
// }
// }
// const validIdxs = (validIdxArray) => {
// return validIdxArray.reduce((a, validIdxArray) => {
// let len = a.length;
// let temp = new Array(len);
// for(let i = 0; i < len; i++) {
// temp[i] = a[i] && b[i]
// }
// return temp;
// })
// }
const truths = [];
let numPoints = 1000;
const generateTruthVector = (numPoints) => {
let myArr = new Array(numPoints);
for (let i=0; i<numPoints; i++) {
myArr[i] = Number(Boolean(Math.random() > 0.5))
}
return myArr;
}
truths.push(generateTruthVector(numPoints))
truths.push(generateTruthVector(numPoints))
truths.push(generateTruthVector(numPoints))
truths.push(generateTruthVector(numPoints))
truths.push(generateTruthVector(numPoints))
const getValidIdxs = (validIdxMatrix) => {
let len = validIdxMatrix[0].length;
let temp = new Array(len);
return validIdxMatrix.reduce((a, b) => {
a.forEach((val, idx) => {
temp[idx] = val * b[idx]
})
return temp;
})
}
let valids = getValidIdxs(truths)
let validIdxs = valids.reduce((validArr, value, idxToCheck) => {
if (value) {
validArr.push(idxToCheck);
}
return validArr;
}, []);
console.log(validIdxs.length, validIdxs)
// sample a random index out of the array
console.log(validIdxs[Math.random() * validIdxs.length >> 0]);
</script></body>
</html>
// const a = [
// [1, 2, 3, 4], // row 0 of data
// [0, 1, 1, 0], // row 1 of data
// [1, 2, 3, 4],
// [1, 1, 1, 0]
// ];
// const addToCompFn = (key, conditionsObject, condF) => {
// const addCondition = (cond) => {
// if (condF) {
// condF = condF && cond;
// } else {
// condF = cond;
// }
// }
// if (key[conditionsObject].gte) {
// addCondition((v) => v >= conditions[c].gte);
// }
// if (key[conditionsObject].lte) {
// addCondition((v) => v <= conditions[c].lte);
// }
// return condF;
// }
// const getComparison = (conditions) => {
// let condF;
// for (key in conditions) {
// condF = addToCompFn(key, conditions, condF)
// }
// return condF;
// }
// const cObj = {
// 0: {
// gte: 1,
// lte: 3
// }
// }
// const validIdxs = (validIdxArray) => {
// return validIdxArray.reduce((a, validIdxArray) => {
// let len = a.length;
// let temp = new Array(len);
// for(let i = 0; i < len; i++) {
// temp[i] = a[i] && b[i]
// }
// return temp;
// })
// }
const truths = [];
let numPoints = 1000;
const generateTruthVector = (numPoints) => {
let myArr = new Array(numPoints);
for (let i=0; i<numPoints; i++) {
myArr[i] = Number(Boolean(Math.random() > 0.5))
}
return myArr;
}
truths.push(generateTruthVector(numPoints))
truths.push(generateTruthVector(numPoints))
truths.push(generateTruthVector(numPoints))
truths.push(generateTruthVector(numPoints))
truths.push(generateTruthVector(numPoints))
const getValidIdxs = (validIdxMatrix) => {
let len = validIdxMatrix[0].length;
let temp = new Array(len);
return validIdxMatrix.reduce((a, b) => {
a.forEach((val, idx) => {
temp[idx] = val * b[idx]
})
return temp;
})
}
let valids = getValidIdxs(truths)
let validIdxs = valids.reduce((validArr, value, idxToCheck) => {
if (value) {
validArr.push(idxToCheck);
}
return validArr;
}, []);
console.log(validIdxs.length, validIdxs)
// sample a random index out of the array
console.log(validIdxs[Math.random() * validIdxs.length >> 0]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment