để xóa phần tử đầu tiên và cuối cùng trong mảng


102

Làm thế nào để loại bỏ phần tử đầu tiên và cuối cùng trong một mảng?

Ví dụ:

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

Mảng đầu ra mong đợi:

["Orange", "Apple"]

9
điều này trông giống như một 'quả bóng mềm' để tạo liên kết đến w3schools, thậm chí bạn đã sử dụng các phần tử mảng giống nhau. ;-)
Myster 11/12/12

Câu trả lời:


142
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. 

Xem tất cả các phương pháp cho một Mảng.


Nó dễ dàng hơn với jQuery UImyArray.effect( "transfer", { item: 'first&&last', to: bin});
iConnor

3
Downvoters thân mến, bạn có thể muốn downvotes của bạn trở nên hữu ích, vì vậy hãy thêm một bình luận giải thích những gì xảy ra với câu trả lời ..

3
Điều này sẽ chỉ trả lại mà lấy giá trị (đầu tiên hoặc cuối cùng) phần tử, mảng không còn lại
Jubin Patel

@RC. Chỉ muốn thông báo cho người dùng về công việc thực tế của chức năng. Tôi đang đặt câu hỏi về câu trả lời của bạn.
Jubin Patel

2
Giống như Người dùng sử dụng hàm này giống như khi bạn viết nó hoạt động rõ ràng như loại bỏ phần tử, NHƯNG nếu người dùng viết return fruits.shift()nó sẽ CHỈ trả về phần tử đầu tiên đó và sau đó loại bỏ khỏi mảng.
Jubin Patel

78

Tạo bản sao sâu 1 cấp.

fruits.slice(1, -1)

Bỏ qua mảng ban đầu.

Cảm ơn @Tim đã chỉ ra lỗi chính tả.


1
Tôi nghĩ bạn có nghĩa slice()là hơn là splice().
Tim Down

70
Cắt nhỏ trái cây là cách tốt hơn so với cắt trái cây hoặc cắt trái cây.
nhỏ

2
với sự nổi tiếng tăng của Redux, javscript chức năng và những thứ không thể thay đổi câu trả lời này là cách tốt hơn
nkint

17

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

Ở đây, -1 biểu thị phần tử cuối cùng trong một mảng và 1 biểu thị phần tử thứ hai.


Hoặc chỉ fruits = fruits.slice(1,-1);khi bạn không phải tạo một biến mới.
Hastig Zusammenstellen

9

Tôi sử dụng phương pháp mối nối.

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

Để loại bỏ phần tử cuối cùng, bạn có thể thực hiện theo cách này:

fruits.splice(-1, 1);

Xem Xóa mục cuối cùng khỏi mảng để xem thêm nhận xét về nó.


4

push()thêm một phần tử mới vào cuối một mảng.
pop()xóa một phần tử khỏi phần cuối của một mảng.

unshift()thêm một phần tử mới vào đầu một mảng.
shift()loại bỏ một phần tử khỏi đầu một mảng.

Để xóa phần tử đầu tiên khỏi một mảng arr, hãy sử dụng arr.shift()
Để xóa phần tử cuối cùng khỏi một mảng arr, hãy sử dụngarr.pop()



1

Để xóa phần tử khỏi mảng rất dễ dàng chỉ cần làm như sau

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

1

Điều này có thể được thực hiện với lodash _.tail_.dropRight:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(_.dropRight(_.tail(fruits)));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>


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"];

Xóa phần tử đầu tiên khỏi mảng.
vikas pal

0

Giả sử bạn có danh sách có tên mảng. Hàm Splice () có thể được sử dụng để thêm và xóa mục trong mảng đó trong chỉ mục cụ thể, tức là có thể ở đầu hoặc cuối hoặc ở bất kỳ chỉ mục nào. Ngược lại, có một hàm khác tên shift ()pop () có khả năng chỉ xóa mục đầu tiên và mục cuối cùng trong mảng.

Đây là Hàm Shift chỉ có khả năng xóa phần tử đầu tiên của mảng

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 ];

Hàm Pop xóa mục khỏi một mảng ở chỉ mục cuối cùng của nó

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

Bây giờ đến chức năng mối nối mà bạn có thể xóa mục ở bất kỳ chỉ mục nào

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 

Hàm Slice chấp nhận hai tham số ( Chỉ mục để bắt đầu , số bước để đi );


-1

Bạn đã sử dụng phương thức Fruits.shift () để xóa phần tử đầu tiên. Phương thức Fruits.pop () được sử dụng cho phần tử cuối cùng loại bỏ từng phần tử một nếu bạn sử dụng nhấp vào nút. Fruits.slice (vị trí bắt đầu, xóa phần tử) Bạn cũng đã sử dụng phương pháp lát cắt để xóa phần tử ở phần bắt đầu ở giữa.


1
đọc và định dạng câu trả lời của bạn một cách chính xác meta.stackexchange.com/questions/22186/...
isuruAb

-1

Để loại bỏ các yếu tố đầu tiên và cuối cùng của một mảng là sử dụng được xây dựng trong phương pháp của một ví dụ mảng shift()pop()các fruits.shift()được những yếu tố đầu tiên của mảng là "chuối", trong khi fruits.pop()có được yếu tố cuối cùng của mảng là "Mango". vì vậy phần tử còn lại của mảng sẽ là["Orange", "Apple"]


2
câu trả lời bạn đưa ra đã tồn tại trong câu hỏi này: đâyđây . Nếu bạn cảm thấy họ cần giải thích thêm, hãy để lại bình luận dưới câu trả lời mà bạn chưa hài lòng.
Skandix

1
Định dạng mã của bạn sẽ hữu ích ( meta.stackexchange.com/questions/22186/… )! Ngoài ra, câu trả lời này có vẻ giống với những câu trả lời khác (ví dụ: stackoverflow.com/a/43327999/608312 ).
Jake Lee,

Lưu ý @JakeSteam
chisom okoye
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.