ฉันมีหลายสิ่งที่อยากจะเพิ่มลงในอาร์เรย์และฉันไม่รู้ว่าอาร์เรย์จะมีขนาดเท่าใด ฉันสามารถทำสิ่งที่คล้ายกับ c # arraylist ใน javascript และทำmyArray.Add(object);ซ้ำ ๆ ได้หรือไม่
ฉันมีหลายสิ่งที่อยากจะเพิ่มลงในอาร์เรย์และฉันไม่รู้ว่าอาร์เรย์จะมีขนาดเท่าใด ฉันสามารถทำสิ่งที่คล้ายกับ c # arraylist ใน javascript และทำmyArray.Add(object);ซ้ำ ๆ ได้หรือไม่
คำตอบ:
เพียงใช้ array.push ();
var array = [];
array.push(value);
สิ่งนี้จะเพิ่มรายการอื่นเข้าไป
หากต้องการถอดออกให้ใช้ array.pop();
ลิงก์ไปยังอาร์เรย์ JavaScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
ไม่มี ArrayList ในจาวาสคริปต์
อย่างไรก็ตามมีArrayECMA 5.1ซึ่งมีการทำงานคล้ายกับ "ArrayList" ส่วนใหญ่ของคำตอบนี้จะนำคำต่อคำจากการแสดงผล HTML ของEcma-262 รุ่น 5.1, The ECMAScript ข้อมูลจำเพาะทางภาษา
อาร์เรย์ที่กำหนดมีวิธีการดังต่อไปนี้:
.toString ( ).toLocaleString ( ).concat ( [ item1 [ , item2 [ , … ] ] ] ) เมื่อเมธอด concat ถูกเรียกโดยมีอาร์กิวเมนต์เป็นศูนย์หรือมากกว่า item1, item2 เป็นต้นจะส่งคืนอาร์เรย์ที่มีองค์ประกอบอาร์เรย์ของวัตถุตามด้วยองค์ประกอบอาร์เรย์ของแต่ละอาร์กิวเมนต์ตามลำดับ
.join (separator)
องค์ประกอบของอาร์เรย์จะถูกแปลงเป็น Strings จากนั้นสตริงเหล่านี้จะเชื่อมต่อกันโดยคั่นด้วยการเกิดขึ้นของตัวคั่น หากไม่มีตัวคั่นจะใช้เครื่องหมายจุลภาคเดียวเป็นตัวคั่น
.pop ( ) องค์ประกอบสุดท้ายของอาร์เรย์จะถูกลบออกจากอาร์เรย์และส่งคืน
.push ( [ item1 [ , item2 [ , … ] ] ] ) อาร์กิวเมนต์จะต่อท้ายอาร์เรย์ตามลำดับที่ปรากฏ ความยาวใหม่ของอาร์เรย์จะถูกส่งกลับอันเป็นผลมาจากการโทร "
.reverse ( ) องค์ประกอบของอาร์เรย์จะถูกจัดเรียงใหม่เพื่อให้กลับลำดับ วัตถุจะถูกส่งกลับอันเป็นผลมาจากการโทร
.shift ( ) องค์ประกอบแรกของอาร์เรย์จะถูกลบออกจากอาร์เรย์และส่งคืน "
.slice (start, end) เมธอด slice ใช้อาร์กิวเมนต์สองตัวเริ่มต้นและสิ้นสุดและส่งคืนอาร์เรย์ที่มีองค์ประกอบของอาร์เรย์ตั้งแต่องค์ประกอบเริ่มต้นขึ้นไปจนถึง แต่ไม่รวมถึงจุดสิ้นสุดขององค์ประกอบ (หรือถึงจุดสิ้นสุดของอาร์เรย์หากไม่ได้กำหนดจุดสิ้นสุด)
.sort (comparefn) องค์ประกอบของอาร์เรย์นี้ถูกจัดเรียง การเรียงลำดับไม่จำเป็นต้องคงที่ (นั่นคือองค์ประกอบที่เปรียบเทียบเท่ากับไม่จำเป็นต้องอยู่ในลำดับเดิม) ถ้าไม่ได้กำหนด Comparefn ควรเป็นฟังก์ชันที่ยอมรับสองอาร์กิวเมนต์ x และ y และส่งกลับค่าเป็นลบถ้า x <y ศูนย์ถ้า x = y หรือค่าบวกถ้า x> y
.splice (start, deleteCount [ , item1 [ , item2 [ , … ] ] ] ) เมื่อเมธอด splice ถูกเรียกโดยมีอาร์กิวเมนต์ตั้งแต่ 2 ตัวขึ้นไป deleteCount และ (optionally) item1, item2 เป็นต้นอิลิเมนต์ deleteCount ของอาร์เรย์ที่เริ่มต้นที่อาร์เรย์เริ่มต้นจะถูกแทนที่ด้วยอาร์กิวเมนต์ item1, item2 ฯลฯ อ็อบเจ็กต์ Array ที่มีองค์ประกอบที่ถูกลบ (ถ้ามี) จะถูกส่งกลับ
.unshift ( [ item1 [ , item2 [ , … ] ] ] ) อาร์กิวเมนต์จะอยู่ข้างหน้าจุดเริ่มต้นของอาร์เรย์เพื่อให้ลำดับของอาร์เรย์ภายในอาร์เรย์เหมือนกับลำดับที่ปรากฏในรายการอาร์กิวเมนต์
.indexOf ( searchElement [ , fromIndex ] ) indexOf เปรียบเทียบ searchElement กับองค์ประกอบของอาร์เรย์โดยเรียงลำดับจากน้อยไปมากโดยใช้อัลกอริธึมการเปรียบเทียบความเท่าเทียมกันอย่างเข้มงวดภายใน (11.9.6) และหากพบในตำแหน่งหนึ่งตำแหน่งขึ้นไปให้ส่งกลับดัชนีของตำแหน่งแรกดังกล่าว มิฉะนั้นจะส่งคืน -1
.lastIndexOf ( searchElement [ , fromIndex ] ) lastIndexOf เปรียบเทียบ searchElement กับองค์ประกอบของอาร์เรย์โดยเรียงลำดับจากมากไปหาน้อยโดยใช้อัลกอริธึมการเปรียบเทียบความเท่าเทียมกันอย่างเข้มงวดภายใน (11.9.6) และหากพบในตำแหน่งหนึ่งตำแหน่งขึ้นไปให้ส่งกลับดัชนีของตำแหน่งสุดท้ายดังกล่าว มิฉะนั้นจะส่งคืน -1
.every ( callbackfn [ , thisArg ] ) callbackfn ควรเป็นฟังก์ชันที่รับอาร์กิวเมนต์สามตัวและส่งคืนค่าที่บังคับได้กับค่าบูลีนจริงหรือเท็จ ทุกการเรียกใช้ callbackfn หนึ่งครั้งสำหรับแต่ละองค์ประกอบที่มีอยู่ในอาร์เรย์โดยเรียงลำดับจากน้อยไปมากจนกว่าจะพบรายการที่ callbackfn ส่งกลับเท็จ หากพบองค์ประกอบดังกล่าวทุกรายการจะคืนค่าเป็นเท็จทันที มิฉะนั้นหาก callbackfn ส่งคืนเป็นจริงสำหรับองค์ประกอบทั้งหมดทุกรายการจะคืนค่าเป็นจริง
.some ( callbackfn [ , thisArg ] ) callbackfn ควรเป็นฟังก์ชันที่รับอาร์กิวเมนต์สามตัวและส่งคืนค่าที่บังคับได้กับค่าบูลีนจริงหรือเท็จ การเรียกใช้ callbackfn บางครั้งสำหรับแต่ละองค์ประกอบที่มีอยู่ในอาร์เรย์โดยเรียงลำดับจากน้อยไปหามากจนกว่าจะพบรายการที่ callbackfn ส่งกลับจริง หากพบองค์ประกอบดังกล่าวบางส่วนจะคืนค่าจริงทันที มิฉะนั้นบางรายการจะแสดงผลเท็จ
.forEach ( callbackfn [ , thisArg ] ) callbackfn ควรเป็นฟังก์ชันที่ยอมรับสามอาร์กิวเมนต์ forEach เรียก callbackfn หนึ่งครั้งสำหรับแต่ละองค์ประกอบที่มีอยู่ในอาร์เรย์โดยเรียงลำดับจากน้อยไปมาก
.map ( callbackfn [ , thisArg ] ) callbackfn ควรเป็นฟังก์ชันที่ยอมรับสามอาร์กิวเมนต์ map เรียก callbackfn หนึ่งครั้งสำหรับแต่ละองค์ประกอบในอาร์เรย์เรียงลำดับจากน้อยไปหามากและสร้าง Array ใหม่จากผลลัพธ์
.filter ( callbackfn [ , thisArg ] ) callbackfn ควรเป็นฟังก์ชันที่รับอาร์กิวเมนต์สามตัวและส่งคืนค่าที่บังคับได้กับค่าบูลีนจริงหรือเท็จ กรองการเรียก callbackfn หนึ่งครั้งสำหรับแต่ละองค์ประกอบในอาร์เรย์โดยเรียงลำดับจากน้อยไปหามากและสร้างอาร์เรย์ใหม่ของค่าทั้งหมดที่ callbackfn ส่งกลับจริง
.reduce ( callbackfn [ , initialValue ] ) callbackfn ควรเป็นฟังก์ชันที่รับสี่อาร์กิวเมนต์ ลดการเรียกการเรียกกลับเป็นฟังก์ชันหนึ่งครั้งสำหรับแต่ละองค์ประกอบที่มีอยู่ในอาร์เรย์โดยเรียงลำดับจากน้อยไปมาก
.reduceRight ( callbackfn [ , initialValue ] ) callbackfn ควรเป็นฟังก์ชันที่รับสี่อาร์กิวเมนต์ ReduceRight เรียกการเรียกกลับเป็นฟังก์ชันหนึ่งครั้งสำหรับแต่ละองค์ประกอบที่มีอยู่ในอาร์เรย์ตามลำดับจากมากไปหาน้อย
ด้วยจาวาสคริปต์อาร์เรย์ทั้งหมดมีความยืดหยุ่น คุณสามารถทำสิ่งต่อไปนี้:
var myArray = [];
myArray.push(object);
myArray.push(anotherObject);
// ...
อาร์เรย์ค่อนข้างยืดหยุ่นใน JS คุณสามารถทำได้:
var myArray = new Array();
myArray.push("string 1");
myArray.push("string 2");
array.splice(index, 1) index
คุณไม่จำเป็นต้องผลักดันคุณสามารถทำสิ่งนี้ได้ -
var A=[10,20,30,40];
A[A.length]=50;
javascript ใช้อาร์เรย์แบบไดนามิกโดยไม่จำเป็นต้องประกาศขนาดล่วงหน้า
คุณสามารถผลักและเปลี่ยนเป็นอาร์เรย์ได้หลายครั้งตามที่คุณต้องการจาวาสคริปต์จะจัดการการจัดสรรและสิ่งต่างๆ
ในสคริปต์ Java คุณประกาศอาร์เรย์ดังนี้:
var array=[];
array.push();
และสำหรับ arraylist หรือ object หรือ array คุณต้องใช้ json; และทำให้เป็นอนุกรมโดยใช้ json โดยใช้รหัสต่อไปนี้:
var serializedMyObj = JSON.stringify(myObj);
ใช้push()วิธีการอาร์เรย์จาวาสคริปต์จะเพิ่มวัตถุที่กำหนดในส่วนท้ายของอาร์เรย์ JS Arrays ค่อนข้างยืดหยุ่นคุณสามารถผลักดันวัตถุได้มากเท่าที่คุณต้องการในอาร์เรย์โดยไม่ต้องระบุความยาวล่วงหน้า นอกจากนี้ยังสามารถผลักวัตถุประเภทต่างๆไปยัง Array เดียวกันได้
เพียงแค่ใช้array.push(something);. อาร์เรย์ Javascript เป็นเหมือน ArrayLists ในแง่นี้ - สามารถปฏิบัติได้เหมือนกับว่ามีความยาวที่ยืดหยุ่นได้ (ไม่เหมือนกับอาร์เรย์ java)
ลองสิ่งนี้อาจช่วยได้มันทำในสิ่งที่คุณต้องการ:
var listArray = new ListArray();
let element = {name: 'Edy', age: 27, country: "Brazil"};
let element2 = {name: 'Marcus', age: 27, country: "Brazil"};
listArray.push(element);
listArray.push(element2);
console.log(listArray.array)
<script src="https://marcusvi200.github.io/list-array/script/ListArray.js"></script>