سلام. من با دو ساختار نوشتم. بدون Set و با Set.
یک سوال برام پیش اومد. در تابع اول نیازه که arr.length رو قبل از حلقه زدن روی arr چک کنم یا خودش چک میکنه؟ تست زدم وقتی arr خالی هست خطایی نمیده. کدوم حالت بهینه تره؟ با length یا بدون اون.
function unique(arr) {
let result = [];
if ((arr instanceof Array) && arr.length > 0) {
arr.forEach(val => {
if(!result.includes(val)) {
result.push(val);
}
});
}
return result;
}
let values = ['Hare', 'Krishna', 'Hare', 'Krishna', 'Krishna', 'Krishna', 'Hare', 'Hare', ':-O']
console.log(unique(values)); // Output: (3) ['Hare', 'Krishna', ':-O']
function unique2(arr) {
return [...new Set(arr)];
}
console.log(unique2('abcc'));