avocado-old/packages/core/array.js
2020-05-26 03:20:34 -05:00

32 lines
680 B
JavaScript

export function arrayUnique(array) {
return Array.from((new Set(array)).values());
}
export function flatten(array) {
return array.reduce((flattened, elm) => flattened.concat(elm), []);
}
export function fromObject(object) {
const array = [];
for (const key in object) {
array.push(object[key]);
}
return array;
}
export function shuffle(array) {
const shuffled = [...array];
shuffleInPlace(shuffled);
return shuffled;
}
export function shuffleInPlace(array) {
let i = 0, j = 0, temp = null;
for (i = array.length - 1; i > 0; i -= 1) {
j = Math.floor(Math.random() * (i + 1))
temp = array[i]
array[i] = array[j]
array[j] = temp
}
}