Livaanderiamarum,
Итого )))
function duplicat(b, c) {
if(b.length != c.length) return !1;
// должна совпадать размерность исходных массивов -> c.length == b.length
for (var d = 0, e = {},a = 0; a < b.length; a++) e[b[a]]? e[b[a]]++:e[b[a]]=1 ;
// создаём обьект e где ключами являются значения первого массива
// e[b[a]]? -> ключ есть ? это на тот случай если значения повторятся в массиве
// увеличиваем значение ключа на 1
// иначе если ещё ключа нет с таким значением
// создаём ключ со значением 1
for (a = 0; a < c.length; a++) e[c[a]] && d++ && e[c[a]]--;
// пробегаемся по второму массиву
// смотрим если значение элемента массива среди ключей
// нами созданного обьекта и его значение ещё не ноль -> e[c[a]]
// если ключ есть, увеличиваем счётчик d -> d++
// значение самого ключа уменьшаем
return d == b.length;
// проверяем счётчик d c длиной массива b
// они должны совпадать -> d == b.length
};