النوع الأول:
انسخ رمز الكود كما يلي:
وظيفة فريدة (آر) {
var obj = {},newArr = [];
for(var i = 0;i < arr.length;i++){
قيمة فار = arr[i];
إذا(!obj[القيمة]){
obj[قيمة] = 1;
newArr.push(value);
}
}
إرجاع newArr؛
}
تقوم هذه الطريقة بتخزين قيمة المصفوفة في الكائن، لذلك عندما يكون المصفوفة عضوًا في الكائن، تفشل العملية (سيتم تحويل الكائن كمفتاح للكائن إلى سلسلة).
الطريقة الثانية:
انسخ رمز الكود كما يلي:
وظيفة فريدة (آر) {
for(var i = 0;i < arr.length;i++){
for(var j = i+1;j < arr.length;j++){
إذا(arr[i] === arr[j]){
arr.splice(j,1);
ي--}
}
}
العودة آر؛
}
حتى إذا كانت المصفوفة الواردة تحتوي على كائنات، فهذه الطريقة مدعومة، لاحظ '==='، ولكن باستخدام الحلقات المتداخلة، سيكون الأداء أسوأ من الطريقة الأولى.