@naverpay/hidash
Version:
improved lodash
32 lines (31 loc) • 795 B
JavaScript
import n from "core-js-pure/features/instance/push.js";
import { isArrayLike as i } from "./internal/array.mjs";
import { isArray as m } from "./isArray.mjs";
function y(e) {
if (e == null)
return [];
let r;
if (e instanceof Map) {
r = [];
const t = Array.from(e.entries()), a = t.length;
for (let f = 0; f < a; f++)
n(r).call(r, t[f][0]), n(r).call(r, t[f][1]);
} else if (e instanceof Set)
r = Array.from(e);
else if (typeof e == "string" || m(e))
r = [...e];
else if (typeof e == "object")
i(e) ? r = Array.from(e) : r = Object.values(e);
else
return [];
let s = r.length;
for (; s > 0; ) {
const t = Math.floor(Math.random() * s--), a = r[s];
r[s] = r[t], r[t] = a;
}
return r;
}
export {
y as default,
y as shuffle
};