UNPKG

@naverpay/hidash

Version:

improved lodash

32 lines (31 loc) 795 B
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 };