เพื่อลบองค์ประกอบแรกและองค์ประกอบสุดท้ายในอาร์เรย์


103

จะลบองค์ประกอบแรกและสุดท้ายในอาร์เรย์ได้อย่างไร?

ตัวอย่างเช่น:

var fruits = ["Banana", "Orange", "Apple", "Mango"];

อาร์เรย์เอาต์พุตที่คาดหวัง:

["Orange", "Apple"]

9
ดูเหมือนว่า 'soft ball' สำหรับการสร้างลิงค์ไปยัง w3schools คุณยังใช้องค์ประกอบอาร์เรย์เดียวกัน ;-)
Myster

คำตอบ:


143
fruits.shift();  // Removes the first element from an array and returns only that element.
fruits.pop();    // Removes the last element from an array and returns only that element. 

ดูวิธีการทั้งหมดสำหรับ Array


ง่ายขึ้นด้วย jQuery UImyArray.effect( "transfer", { item: 'first&&last', to: bin});
iConnor

3
เรียนผู้ลงคะแนนคุณอาจต้องการให้การโหวตลดลงของคุณเป็นประโยชน์ดังนั้นโปรดเพิ่มความคิดเห็นเพื่ออธิบายว่ามีอะไรผิดปกติกับคำตอบ ..

3
สิ่งนี้จะส่งคืนเฉพาะค่าขององค์ประกอบที่ถูกลบ (แรกหรือสุดท้าย) เท่านั้นไม่เหลืออาร์เรย์
Jubin Patel

@RC. เพียงแค่ต้องการแจ้งให้ผู้ใช้ทราบเกี่ยวกับการทำงานจริงของฟังก์ชัน ฉันกำลังตั้งคำถามกับคำตอบของคุณ
Jubin Patel

2
เช่นเดียวกับผู้ใช้ใช้ฟังก์ชันนี้เช่นเดียวกับที่คุณเขียนว่ามันใช้งานได้ดีในฐานะลบองค์ประกอบ แต่ถ้าผู้ใช้เขียนreturn fruits.shift()มันจะส่งคืนเฉพาะองค์ประกอบแรกนั้นจากนั้นจึงลบออกจากอาร์เรย์
Jubin Patel

80

สร้างสำเนาลึก 1 ระดับ

fruits.slice(1, -1)

ปล่อยอาร์เรย์เดิม

ขอบคุณ @Tim ที่ชี้ให้เห็นข้อผิดพลาดในการสะกดคำ


1
ฉันคิดว่าคุณหมายถึงมากกว่าslice() splice()
Tim Down

71
การหั่นผลไม้เป็นวิธีที่ดีกว่าการทุบหรือสับผลไม้
อนุ

2
ด้วยความนิยมที่เพิ่มขึ้นของ redux, javscript ที่ใช้งานได้และสิ่งที่ไม่เปลี่ยนรูปคำตอบนี้ดีกว่า
nkint

17

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var newFruits = fruits.slice(1, -1);
console.log(newFruits); //  ["Orange", "Apple"];

ในที่นี้ -1 หมายถึงองค์ประกอบสุดท้ายในอาร์เรย์และ 1 หมายถึงองค์ประกอบที่สอง


หรือfruits = fruits.slice(1,-1);ถ้าไม่ต้องสร้างตัวแปรใหม่
Hastig Zusammenstellen

9

ฉันใช้วิธีประกบ

fruits.splice(0, 1); // Removes first array element

var lastElementIndex = fruits.length-1; // Gets last element index

fruits.splice(lastElementIndex, 1); // Removes last array element

หากต้องการลบองค์ประกอบสุดท้ายคุณสามารถทำได้ด้วยวิธีนี้:

fruits.splice(-1, 1);

ดูลบรายการสุดท้ายจากอาร์เรย์เพื่อดูความคิดเห็นเพิ่มเติมเกี่ยวกับรายการนี้


4

push()เพิ่มองค์ประกอบใหม่ที่ส่วนท้ายของอาร์เรย์
pop()ลบองค์ประกอบออกจากส่วนท้ายของอาร์เรย์

unshift()เพิ่มองค์ประกอบใหม่ที่จุดเริ่มต้นของอาร์เรย์
shift()ลบองค์ประกอบจากจุดเริ่มต้นของอาร์เรย์

ในการลบองค์ประกอบแรกออกจากอาร์เรย์arrให้ใช้arr.shift()
เพื่อลบองค์ประกอบสุดท้ายออกจากอาร์เรย์arrให้ใช้arr.pop()


2

คุณสามารถใช้Array.prototype.reduce ()

รหัส:

const fruits = ['Banana', 'Orange', 'Apple', 'Mango'],
      result = fruits.reduce((a, c, i, array) => 0 === i || array.length - 1 === i ? a : [...a, c], []);

console.log(result);


เด็ดเห็นลดเพื่อเอาไอเทมชิ้นแรกและชิ้นสุดท้าย!
Mohan Ram

1

ในการลบองค์ประกอบออกจากอาร์เรย์ทำได้ง่ายเพียงทำดังต่อไปนี้

let array_splited = [].split('/');
array_splited.pop()
array_splited.join('/')


0
var resident_array =  ["RC_FRONT", "RC_BACK", "RC_BACK"];
var remove_item = "RC_FRONT";
resident_array = $.grep(resident_array, function(value) {
            return value != remove_item;
    });
resident_array = ["RC_BACK", "RC_BACK"];

ลบองค์ประกอบแรกออกจากอาร์เรย์
vikas pal

0

สมมติว่าคุณมีอาร์เรย์ชื่อรายการ ฟังก์ชันSplice ()สามารถใช้สำหรับทั้งการเพิ่มและลบรายการในอาร์เรย์นั้นในดัชนีเฉพาะเช่นที่สามารถอยู่ในจุดเริ่มต้นหรือท้ายที่สุดหรือที่ดัชนีใดก็ได้ ในทางตรงกันข้ามมีชื่อฟังก์ชั่นอื่นshift ()และpop ()ซึ่งสามารถลบได้เฉพาะรายการแรกและรายการสุดท้ายในอาร์เรย์

นี่คือฟังก์ชัน Shift ซึ่งสามารถลบองค์ประกอบแรกของอาร์เรย์ได้เท่านั้น

var item = [ 1,1,2,3,5,8,13,21,34 ]; // say you have this number series 
item.shift(); // [ 1,2,3,5,8,13,21,34 ];

Pop Function จะลบรายการออกจากอาร์เรย์ที่ดัชนีสุดท้าย

item.pop(); // [ 1,2,3,5,8,13,21 ];

ตอนนี้มีฟังก์ชั่นประกบซึ่งคุณสามารถลบรายการที่ดัชนีใดก็ได้

item.slice(0,1); // [ 2,3,5,8,13,21 ] removes the first object
item.slice(item.length-1,1); // [ 2,3,5,8,13 ] removes the last object 

ฟังก์ชั่นชิ้นรับสองพารามิเตอร์ ( ดัชนีจะเริ่มต้นด้วย , จำนวนของขั้นตอนที่จะไป );


-1

คุณใช้วิธี Fruits.shift () เพื่อลบองค์ประกอบแรก Fruits.pop () วิธีที่ใช้สำหรับองค์ประกอบสุดท้ายลบทีละรายการหากคุณใช้การคลิกปุ่ม Fruits.slice (ตำแหน่งเริ่มต้นลบองค์ประกอบ) คุณยังใช้วิธี slice เพื่อลบองค์ประกอบในการเริ่มต้นกลาง


1
อ่านสิ่งนี้และจัดรูปแบบคำตอบของคุณให้ถูกต้องmeta.stackexchange.com/questions/22186/…
isuruAb

-1

ในการลบองค์ประกอบแรกและครั้งสุดท้ายของอาร์เรย์คือการใช้ในตัววิธีการเช่นอาร์เรย์shift()และได้รับองค์ประกอบแรกของอาร์เรย์เป็น "กล้วย" ในขณะที่ได้รับองค์ประกอบสุดท้ายของอาร์เรย์เป็น "มะม่วง" ดังนั้นองค์ประกอบที่เหลือของอาร์เรย์จะเป็นpop()fruits.shift()fruits.pop()["Orange", "Apple"]


2
คำตอบที่คุณให้เป็นที่มีอยู่แล้วในคำถามนี้: ที่นี่และที่นี่ หากคุณรู้สึกว่าพวกเขาต้องการคำอธิบายเพิ่มเติมโปรดแสดงความคิดเห็นใต้คำตอบที่คุณไม่พอใจ
Skandix

1
การจัดรูปแบบโค้ดของคุณจะช่วยได้ ( meta.stackexchange.com/questions/22186/… )! นอกจากนี้คำตอบนี้ดูเหมือนจะเหมือนกับคำตอบอื่น ๆ (เช่นstackoverflow.com/a/43327999/608312 )
Jake Lee

สังเกต @JakeSteam
chisom okoye
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.