พื้นฐาน:
คัดลอกอาร์เรย์:
(1) การวนซ้ำสำเนา Traversal (ไม่แนะนำ)
การคัดลอกรหัสมีดังนี้:
var arr = [1,5,9,7]
new_arry = []
n = 0,
len = arr.length;
สำหรับ (; n <len; n ++) {
new_arry.push (arry [n]);
-
(2) วิธี CONCAT () ใช้เพื่อเชื่อมต่อสองอาร์เรย์ขึ้นไป วิธีนี้จะไม่เปลี่ยนอาร์เรย์ที่มีอยู่ แต่จะส่งคืนสำเนาของอาร์เรย์ที่เชื่อมต่อเท่านั้น
การคัดลอกรหัสมีดังนี้:
var arr = [1,5,9,7]
new_arry = arry.concat ();
console.log (new_arry);
(3) เมธอด slice () สามารถส่งคืนองค์ประกอบที่เลือกจากอาร์เรย์ที่มีอยู่
การคัดลอกรหัสมีดังนี้:
var arr = [1,5,9,7]
new_arry = arry.slice (0);
console.log (new_arry);
หมายเลขสุ่ม:
Math.Random ()
Math.Random () ส่งคืนหมายเลขสุ่มจาก 0 ถึง 1 เช่น: 0.4261967441998422
ฟังก์ชั่นการห่อหุ้มส่วนบุคคล:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น getRandom (opt) {
var old_arry = opt.arry
range = opt.Range;
// ป้องกันความยาวของอาร์เรย์จาก
ช่วง = ช่วง> old_arry.length? old_arry.length: ช่วง;
var newarray = [] .concat (old_arry), // คัดลอกอาร์เรย์ดั้งเดิมและใช้งานมันจะไม่ทำลายอาร์เรย์ดั้งเดิม
Valarray = [];
สำหรับ (var n = 0; n <range; n ++) {
var r = math.floor (math.random () * (newarray.length));
Valarray.push (Newarray [r]);
// ลบอาร์เรย์ดั้งเดิมจากนั้นหลีกเลี่ยงการได้มาซ้ำในลูปถัดไป
Newarray.splice (r, 1);
-
Valarray กลับ;
-
var new_val = getRandom ({'arry': [1,6,8,0,3], 'ช่วง': 3});
console.log (new_val);
มีประโยชน์มากหรือไม่? รหัสที่ใช้งานได้จริงมาก นี่คือโครงการแยกต่างหากจากโครงการของฉันเองและฉันหวังว่ามันจะเป็นประโยชน์กับคุณ