غالبًا ما أواجه بعض العمليات المتعلقة بالمصفوفات في العمل
1. حدد بشكل عشوائي x قطعة من البيانات الفريدة من البيانات (ملاحظة: S.each أدناه هي طريقة KISSY.each، يمكنك تغييرها إلى حلقة for)
انسخ رمز الكود كما يلي:
/*
حدد بشكل عشوائي x قطعة من البيانات الفريدة من المصفوفة
*/
الدالة myRand(arr,num){
var newArr = [];
راند(رقم); //عشوائي x
وظيفة راند (ك) {
إذا (ك==0){
يعود؛
}
var Index = Math.floor(Math.random() * arr.length);
علامة فار = صحيح؛
S.each(newArr,function(v){
إذا (الخامس == آر[الفهرس]){
العلم = خطأ؛
}
});
إذا (العلم) {
newArr.push(arr[index]);
ك--؛
}
راند (ك)؛
}
إرجاع newArr؛
}
2. حدد بشكل عشوائي x قطعة من البيانات الفريدة من الكائن
انسخ رمز الكود كما يلي:
/*
اختر عشوائيًا عناصر x من الكائن obj
*/
وظيفة مايراند () {
فار S = كيسي؛
فار أوبج={
'01':{الاسم:'أ'}،
'02':{الاسم:'ب'}،
'03':{الاسم:'ج'}،
'04':{الاسم:'د'}،
'05':{الاسم:'e'}،
'06':{الاسم:'f'},
'07':{الاسم:'ز'},
'08':{الاسم:'ح'}،
'09':{الاسم:'i'},
'10':{الاسم:'ز'}
};
فار آر = [];
S.each(obj,وظيفة(v,k){
arr.push(ك);
});
// اختر عشوائيا 3
var newArr = myRand(arr,3);
S.each(newArr,function(b){
console.log(obj[b]);
})
};
3. إزالة التكرارات من المصفوفة
انسخ رمز الكود كما يلي:
/*
إزالة التكرارات من المصفوفة
*/
الدالة uniqArr(arr){
وظيفة toObject(أ) {
فار س = {};
لـ (var i=0, j=a.length; i<j; i=i+1) {
o[a[i]] = true;
}
العودة س؛
};
مفاتيح الوظائف (س) {
فار أ=[], أنا;
ل (أنا في س) {
if (o.hasOwnProperty(i)) { // هنا، في كود مصدر YUI، يكون lang.hasOwnProperty(o, i)
a.push(i);
}
}
العودة أ؛
};
مفاتيح الإرجاع(toObject(arr));
}