Skip to content

Instantly share code, notes, and snippets.

Created February 7, 2016 16:27
Show Gist options
  • Save anonymous/ae6172452d82d8ab25b2 to your computer and use it in GitHub Desktop.
Save anonymous/ae6172452d82d8ab25b2 to your computer and use it in GitHub Desktop.
JS Bin // source https://jsbin.com/lugoko
<!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">
var arr = [
['H', 'H', 'W', 'O'],
['W', 'W', 'O', 'W'],
['H', 'H', 'O', 'O'],
[, , , ,]
];
var b = [[ 'W', undefined, 'W', undefined, 'O', 'A', 'W', 'O', 'W', undefined ],
[ undefined,
'A',
'W',
'W',
undefined,
'W',
'A',
undefined,
undefined,
'W' ],
[ 'A', 'O', 'W', 'W', 'A', 'O', 'O', 'O', 'O', 'H' ],
[ 'O', undefined, 'W', 'O', 'A', 'W', 'A', 'H', 'A', 'O' ],
[ 'O', 'W', 'O', 'H', undefined, 'H', 'A', 'H', undefined, undefined ] ];
// sort the array so that the liquid values rise to the top by density
function separateLiquids(glass) {
if (glass.length < 1) {
return [];
}
var size = glass[0].length;
var temp = [];
var liquids = {
H: 1.36,
W: 1.00,
A: 0.85,
O: 0.80
};
var sortedArray = glass
.reduce(function(a, b) {
return a.concat(b);
})
.sort(function(val, val2) {
if (liquids[val] > liquids[val2]) {
return 1;
}
if (liquids[val] < liquids[val2]) {
return -1;
}
});
for (var i = 0; i < sortedArray.length; i += size) {
temp.push(sortedArray.slice(i, i + size));
}
return temp.map(function(arr) {
return arr.filter(Boolean);
});
}
/*
[ [
['H', 'H', 'W', 'O'], ['O','O','O','O']
['W', 'W', 'O', 'W'], => ['W','W','W','W']
['H', 'H', 'O', 'O'] ['H','H','H','H']
]
*/
</script>
<script id="jsbin-source-javascript" type="text/javascript">var arr = [
['H', 'H', 'W', 'O'],
['W', 'W', 'O', 'W'],
['H', 'H', 'O', 'O'],
[, , , ,]
];
var b = [[ 'W', undefined, 'W', undefined, 'O', 'A', 'W', 'O', 'W', undefined ],
[ undefined,
'A',
'W',
'W',
undefined,
'W',
'A',
undefined,
undefined,
'W' ],
[ 'A', 'O', 'W', 'W', 'A', 'O', 'O', 'O', 'O', 'H' ],
[ 'O', undefined, 'W', 'O', 'A', 'W', 'A', 'H', 'A', 'O' ],
[ 'O', 'W', 'O', 'H', undefined, 'H', 'A', 'H', undefined, undefined ] ];
// sort the array so that the liquid values rise to the top by density
function separateLiquids(glass) {
if (glass.length < 1) {
return [];
}
var size = glass[0].length;
var temp = [];
var liquids = {
H: 1.36,
W: 1.00,
A: 0.85,
O: 0.80
};
var sortedArray = glass
.reduce(function(a, b) {
return a.concat(b);
})
.sort(function(val, val2) {
if (liquids[val] > liquids[val2]) {
return 1;
}
if (liquids[val] < liquids[val2]) {
return -1;
}
});
for (var i = 0; i < sortedArray.length; i += size) {
temp.push(sortedArray.slice(i, i + size));
}
return temp.map(function(arr) {
return arr.filter(Boolean);
});
}
/*
[ [
['H', 'H', 'W', 'O'], ['O','O','O','O']
['W', 'W', 'O', 'W'], => ['W','W','W','W']
['H', 'H', 'O', 'O'] ['H','H','H','H']
]
*/</script></body>
</html>
var arr = [
['H', 'H', 'W', 'O'],
['W', 'W', 'O', 'W'],
['H', 'H', 'O', 'O'],
[, , , ,]
];
var b = [[ 'W', undefined, 'W', undefined, 'O', 'A', 'W', 'O', 'W', undefined ],
[ undefined,
'A',
'W',
'W',
undefined,
'W',
'A',
undefined,
undefined,
'W' ],
[ 'A', 'O', 'W', 'W', 'A', 'O', 'O', 'O', 'O', 'H' ],
[ 'O', undefined, 'W', 'O', 'A', 'W', 'A', 'H', 'A', 'O' ],
[ 'O', 'W', 'O', 'H', undefined, 'H', 'A', 'H', undefined, undefined ] ];
// sort the array so that the liquid values rise to the top by density
function separateLiquids(glass) {
if (glass.length < 1) {
return [];
}
var size = glass[0].length;
var temp = [];
var liquids = {
H: 1.36,
W: 1.00,
A: 0.85,
O: 0.80
};
var sortedArray = glass
.reduce(function(a, b) {
return a.concat(b);
})
.sort(function(val, val2) {
if (liquids[val] > liquids[val2]) {
return 1;
}
if (liquids[val] < liquids[val2]) {
return -1;
}
});
for (var i = 0; i < sortedArray.length; i += size) {
temp.push(sortedArray.slice(i, i + size));
}
return temp.map(function(arr) {
return arr.filter(Boolean);
});
}
/*
[ [
['H', 'H', 'W', 'O'], ['O','O','O','O']
['W', 'W', 'O', 'W'], => ['W','W','W','W']
['H', 'H', 'O', 'O'] ['H','H','H','H']
]
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment