Một số cách dưới đây cho các trường hợp khác nhau.
Trong hầu hết các trường hợp thông thường, cách đơn giản nhất để truy cập phần tử đầu tiên là
yourArray[0]
nhưng điều này đòi hỏi bạn phải kiểm tra xem [0] có thực sự tồn tại không.
Có những trường hợp trong thế giới thực mà bạn không quan tâm đến mảng ban đầu và không muốn kiểm tra xem chỉ mục có tồn tại hay không, bạn chỉ muốn lấy phần tử đầu tiên hoặc nội tuyến không xác định.
Trong trường hợp này, bạn có thể sử dụng phương thức shift () để lấy phần tử đầu tiên, nhưng hãy thận trọng rằng phương thức này sửa đổi mảng ban đầu (loại bỏ mục đầu tiên và trả về nó). Do đó, chiều dài của một mảng được giảm đi một. Phương pháp này có thể được sử dụng trong các trường hợp nội tuyến khi bạn chỉ cần lấy phần tử đầu tiên, nhưng bạn không quan tâm đến mảng ban đầu.
yourArray.shift()
Điều quan trọng cần biết là hai ở trên chỉ là một tùy chọn nếu mảng của bạn bắt đầu bằng chỉ mục [0].
Có những trường hợp phần tử đầu tiên đã bị xóa, ví dụ với, xóa yourArray [0] để lại mảng của bạn có "lỗ hổng". Bây giờ phần tử tại [0] đơn giản là không xác định, nhưng bạn muốn lấy phần tử "hiện có" đầu tiên. Tôi đã thấy nhiều trường hợp thực tế của điều này.
Vì vậy, giả sử chúng ta không có kiến thức về mảng và khóa đầu tiên (hoặc chúng ta biết có lỗ hổng), chúng ta vẫn có thể có được phần tử đầu tiên.
Bạn có thể sử dụng find () để lấy phần tử đầu tiên.
Ưu điểm của find () là hiệu quả của nó khi thoát khỏi vòng lặp khi đạt được giá trị đầu tiên thỏa mãn điều kiện (chi tiết hơn về điều này bên dưới). (Bạn có thể tùy chỉnh điều kiện để loại trừ null hoặc các giá trị trống khác)
var firstItem = yourArray.find(x=>x!==undefined);
Tôi cũng muốn bao gồm bộ lọc () ở đây như là một tùy chọn để "sửa" mảng đầu tiên trong bản sao và sau đó lấy phần tử đầu tiên trong khi vẫn giữ nguyên mảng ban đầu (không thay đổi).
Một lý do khác để bao gồm bộ lọc () ở đây là nó tồn tại trước find () và nhiều lập trình viên đã sử dụng nó (đó là ES5 chống lại find () là ES6).
var firstItem = yourArray.filter(x => typeof x!==undefined).shift();
Cảnh báo rằng bộ lọc () không thực sự là một cách hiệu quả (bộ lọc () chạy qua tất cả các phần tử) và tạo ra một mảng khác. Nó là tốt để sử dụng trên các mảng nhỏ vì tác động hiệu suất sẽ là cận biên, gần hơn với việc sử dụng forEach, ví dụ.
(Tôi thấy một số người đề xuất sử dụng cho ... trong vòng lặp để có được phần tử đầu tiên, nhưng tôi khuyên bạn nên sử dụng phương thức này cho ... không nên được sử dụng để lặp qua một mảng trong đó thứ tự chỉ mục là quan trọng vì nó không ' Không đảm bảo trật tự mặc dù bạn có thể tranh luận các trình duyệt chủ yếu tôn trọng trật tự. Dù sao đi nữa, forEach không giải quyết được vấn đề như nhiều người đề xuất vì bạn không thể phá vỡ nó và nó sẽ chạy qua tất cả các yếu tố. vòng lặp và bằng cách kiểm tra khóa / giá trị
Cả find () và filter () đều đảm bảo thứ tự các phần tử, vì vậy an toàn để sử dụng như trên.