ฉันมักจะพบกับการดำเนินการบางอย่างที่เกี่ยวข้องกับอาร์เรย์ในที่ทำงาน
1. สุ่มเลือกข้อมูลที่ไม่ซ้ำกัน x ชิ้นจากข้อมูล (PS: S.each ด้านล่างคือวิธี KISSY.each คุณสามารถเปลี่ยนเป็น for loop ได้)
คัดลอกรหัสรหัสดังต่อไปนี้:
-
สุ่มเลือกข้อมูลที่ไม่ซ้ำกัน x ชิ้นจากอาร์เรย์ arr
-
ฟังก์ชั่น myRand(arr,num){
var newArr = [];
แรนด์ (หมายเลข); //สุ่ม x
ฟังก์ชั่นแรนด์ (k) {
ถ้า(k==0){
กลับ;
-
ดัชนี var = Math.floor(Math.random() * arr.length);
แฟล็ก var = จริง;
S.each(newArr,ฟังก์ชัน(v){
ถ้า (v == arr [ดัชนี]) {
ธง = เท็จ;
-
-
ถ้า (ตั้งค่าสถานะ) {
newArr.push(arr[ดัชนี]);
เค--;
-
แรนด์(k);
-
กลับ newArr;
-
2. สุ่มเลือกข้อมูลที่ไม่ซ้ำกันจำนวน x ชิ้นจากออบเจ็กต์
คัดลอกรหัสรหัสดังต่อไปนี้:
-
สุ่มเลือก x รายการจากวัตถุ obj
-
ฟังก์ชั่น myRand(){
var S = จูบ;
วาร์ obj={
'01':{ชื่อ:'a'},
'02':{ชื่อ:'b'},
'03':{ชื่อ:'c'},
'04':{ชื่อ:'d'},
'05':{ชื่อ:'e'},
'06':{ชื่อ:'f'},
'07':{ชื่อ:'g'},
'08':{ชื่อ:'h'},
'09':{ชื่อ:'i'},
'10':{ชื่อ:'g'}
-
var arr = [];
S.each(obj,ฟังก์ชั่น(v,k){
arr.ผลักดัน(k);
-
//สุ่มเลือก 3
var newArr = myRand(arr,3);
S.each(newArr,ฟังก์ชั่น(b){
console.log(obj[b]);
-
-
3. ลบรายการที่ซ้ำกันออกจากอาร์เรย์
คัดลอกรหัสรหัสดังต่อไปนี้:
-
ลบรายการที่ซ้ำกันออกจากอาร์เรย์
-
ฟังก์ชั่น uniqArr (arr) {
ฟังก์ชั่น toObject (ก) {
วาร์ โอ = {};
สำหรับ (var i=0, j=a.length; i<j; i=i+1) {
o[a[i]] = จริง;
-
กลับหรือ;
-
ปุ่มฟังก์ชั่น (o) {
var a=[], ฉัน;
สำหรับ (ฉันอยู่ใน o) {
if (o.hasOwnProperty(i)) { // ที่นี่ ในซอร์สโค้ด YUI มันคือ lang.hasOwnProperty(o, i)
ก.กด(i);
-
-
กลับ;
-
ส่งคืนคีย์ (toObject (arr));
-