ลบองค์ประกอบแรกออกจากอาร์เรย์และส่งคืนอาร์เรย์ลบองค์ประกอบแรก


108

var myarray = ["item 1", "item 2", "item 3", "item 4"];

//removes the first element of the array, and returns that element.
alert(myarray.shift());
//alerts "item 1"

//removes the last element of the array, and returns that element.
alert(myarray.pop());
//alerts "item 4"

  1. วิธีลบอาร์เรย์แรก แต่ส่งคืนอาร์เรย์ลบองค์ประกอบแรก
  2. ในตัวอย่างของฉันฉันควรจะได้รับ"item 2", "item 3", "item 4"เมื่อฉันลบองค์ประกอบแรก

6
alert(array.slice(1))หรือarray.shift(); alert(array);
โทมัส

2
@ โทมัสเมื่อฉันใช้myarray.shift()คืน"item 1"สิ่งที่ฉันต้องการคือผลตอบแทน"item 2", "item 3", "item 4"
Brownman Revival

โปรดอ่านรหัสทั้งหมดที่ฉันเขียนโดยใช้shift()
โทมัส

1
หากคุณต้องการสร้างอาร์เรย์ใหม่โดยไม่มีองค์ประกอบแรกให้ใช้ slice
Arnial

6
เพียงเพื่อเพิ่มอีกหนึ่งในการผสม :) ด้วยการทำลายล้าง:[,...myarray] = myarray;
ฉันชื่อ

คำตอบ:


155

สิ่งนี้ควรลบองค์ประกอบแรกจากนั้นคุณสามารถคืนค่าที่เหลือได้:

var myarray = ["item 1", "item 2", "item 3", "item 4"];
    
myarray.shift();
alert(myarray);

ตามที่คนอื่นแนะนำคุณสามารถใช้ slice (1);

var myarray = ["item 1", "item 2", "item 3", "item 4"];
  
alert(myarray.slice(1));


28
โปรดทราบslice(1) ว่าไม่ได้ "ลบองค์ประกอบแรก" ออกจากอาร์เรย์ แต่จะสร้างอาร์เรย์ใหม่พร้อมสำเนาตื้นของค่าทั้งหมดจากอาร์เรย์ยกเว้นรายการแรก
TJ Crowder

2
มีประโยชน์ในการใช้ slice (1) หากคุณมีอาร์เรย์อาร์เรย์
Flummox - อย่าชั่วร้าย SE

29

ทำไมไม่ใช้ ES6?

 var myarray = ["item 1", "item 2", "item 3", "item 4"];
 const [, ...rest] = myarray;
 console.log(rest)


ฉันชอบไอเดียนี้ยกเว้นว่าอย่างแรกมันจะเป็นค่าคงที่ที่ไม่ได้ใช้
giovannipds

4
แก้ไขได้โดยใช้const [,...rest] = myarray= O = D
giovannipds

6

ลองทำตามนี้

    var myarray = ["item 1", "item 2", "item 3", "item 4"];

    //removes the first element of the array, and returns that element apart from item 1.
    myarray.shift(); 
    console.log(myarray); 

คุณลองดูคำถามนี้หรือไม่ดูคำถามที่อัปเดตของฉันพร้อมตัวอย่างข้อมูลจะกลับมา"item 1"
Brownman Revival


-1

คุณสามารถใช้ array.slice (0,1) // ดัชนีแรกถูกลบออกและส่งคืนอาร์เรย์


2
ดัชนี FIrst ไม่ได้ถูกลบออกสำเนาถูกสร้างขึ้นโดยไม่มีองค์ประกอบแรก อาร์เรย์เดิมไม่มีการแก้ไข
Emaborsa

นอกจากนี้ชิ้น (0,1) จะกลับอาร์เรย์ที่มีรายการแรกเท่านั้น คุณต้องเรียก slice (1) แทนเพื่อรับอาร์เรย์ที่มีรายการทั้งหมดยกเว้นรายการแรกเช่นเดียวกับในคำตอบที่ยอมรับ
schellmax
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.