Saya sering menjumpai beberapa operasi yang berhubungan dengan array di tempat kerja
1. Pilih secara acak x buah data unik dari data tersebut (PS: S.each di bawah ini adalah metode KISSY.each, Anda dapat mengubahnya menjadi for loop)
Copy kode kodenya sebagai berikut:
/*
Pilih secara acak x potongan data unik dari array arr
*/
fungsi myRand(arr,num){
var Arr baru = [];
acak(angka); //Acak x
fungsi rand(k){
jika(k==0){
kembali;
}
var indeks = Matematika.lantai(Matematika.acak() * arr.panjang);
var bendera = benar;
S.each(newArr,function(v){
if(v == arr[indeks]){
bendera = salah;
}
});
jika(bendera){
newArr.push(arr[indeks]);
k--;
}
acak(k);
}
kembalikan Arr baru;
}
2. Pilih secara acak x potongan data unik dari objek
Copy kode kodenya sebagai berikut:
/*
Pilih secara acak x item dari objek objek
*/
fungsi myRand(){
var S = CIUMAN;
var objek={
'01':{nama:'a'},
'02':{nama:'b'},
'03':{nama:'c'},
'04':{nama:'d'},
'05':{nama:'e'},
'06':{nama:'f'},
'07':{nama:'g'},
'08':{nama:'h'},
'09':{nama:'i'},
'10':{nama:'g'}
};
var arr = [];
S.each(obj,function(v,k){
arr.push(k);
});
//Pilih secara acak 3
var newArr = myRand(arr,3);
S.each(newArr,function(b){
konsol.log(obj[b]);
})
};
3. Hapus duplikat dari array
Copy kode kodenya sebagai berikut:
/*
Hapus duplikat dari array
*/
fungsi uniqArr(arr){
fungsi ke Objek(a) {
var o = {};
for (var i=0, j=a.panjang; i<j; i=i+1) {
o[a[i]] = benar;
}
kembali o;
};
tombol fungsi(o) {
var a=[], saya;
untuk (saya di o) {
if (o.hasOwnProperty(i)) { // Di sini, dalam kode sumber YUI adalah lang.hasOwnProperty(o, i)
a.mendorong(i);
}
}
kembalikan a;
};
kunci pengembalian(toObject(arr));
}