Hướng dẫn do arrays start at 0 or 1 in javascript? - mảng có bắt đầu bằng 0 hay 1 trong javascript không?

Hướng dẫn do arrays start at 0 or 1 in javascript? - mảng có bắt đầu bằng 0 hay 1 trong javascript không?

Thuộc tính độ dài của một mảng JavaScript là một công cụ rất hữu ích, nhưng tại sao độ dài mảng luôn luôn là một trong số đó? always one “off”?

Mảng trong JavaScript là không dựa trên. Điều này có nghĩa là JavaScript bắt đầu đếm từ số 0 khi nó lập chỉ mục một mảng. Nói cách khác, giá trị chỉ mục của phần tử đầu tiên trong mảng là 0 0 và giá trị chỉ mục của phần tử thứ hai là 1 1, giá trị chỉ số phần tử thứ ba là 2 2, v.v. Điều này không phải là bất thường trong các ngôn ngữ lập trình máy tính. Thuộc tính độ dài mảng JavaScript được đưa ra trong bối cảnh một dựa trên. Vì vậy, một mảng JavaScript có một phần tử sẽ có độ dài của trò chơi của 1 1. Nếu một mảng JavaScript có bốn phần tử, thì thuộc tính độ dài của mảng đó sẽ có giá trị của Four Four. Nhưng (và đây là điểm mà nhiều người bị nhầm lẫn), nếu một mảng JavaScript có bốn phần tử, yếu tố cuối cùng có một chỉ số của 3 3. Điều này là do, một lần nữa, các mảng JavaScript dựa trên không.

Độ dài mảng - Ví dụ # 1

Trong ví dụ # 1, chúng tôi có một mảng với năm yếu tố. Câu lệnh Console.log () cũng phản ánh điều này bởi vì thuộc tính độ dài độ dài của mảng này là 5 5 (tức là đây là giá trị một dựa trên).

Vì vậy, mặc dù mảng có chiều dài 5, phần tử đầu tiên có chỉ số 0 và phần tử cuối cùng (phần tử thứ 5) có chỉ số là 4. Bây giờ đây là điểm quan trọng nhất và đó là những gì giải thích TẮT Tham chiếu: Độ dài của mảng luôn cao hơn chỉ số của phần tử mảng cuối cùng vì các chỉ mục mảng dựa trên 0, nhưng thuộc tính độ dài là một dựa trên.

Ít hơn chiều dài - ví dụ # 2

Trong ví dụ # 2, chúng tôi tạo ra một biến giá trị của người có giá trị thấp hơn độ dài của mảng của chúng tôi. Vì vậy, vì tài sản của Array Array của chúng tôi có độ dài của chúng tôi là 5, thì biến số của chúng tôi bằng cách của chúng tôi. Vòng lặp của chúng tôi sẽ bắt đầu ở 0 và chạy cho đến khi nó bằng với 4 4. Đây là năm lần lặp, nhưng chúng tôi đang bắt đầu ở 0, không phải một. Vì vậy, vì JavaScript bắt đầu đếm các mảng từ số 0, mã của chúng tôi đã xuất thành công giá trị của từng phần tử trong mảng.

Đây là một kỹ thuật rất phổ biến: khi bạn muốn lặp lại một mảng, bạn tạo một vòng lặp và đặt các lần lặp tối đa thành một số ít hơn so với độ dài của mảng. Bây giờ trong khi điều này có vẻ tẻ nhạt, nhưng nó thực sự là một mô hình vững chắc đá, bởi vì độ dài của mảng sẽ luôn luôn (luôn luôn) cao hơn chỉ số của phần tử cuối cùng trong mảng. Vì vậy, theo sau, nếu vòng lặp của bạn lặp lại x lần và x bằng với một người ít hơn độ dài của mảng, thì vòng lặp của bạn sẽ luôn lặp lại trên mọi phần tử trong mảng. Điều này mất một chút quen thuộc, nhưng một khi bạn làm, nó trở thành bản chất thứ hai.

Đầu ra bảng điều khiển - Ví dụ # 3

Bản tóm tắt

Mảng JavaScript là dựa trên không. Thuộc tính của JavaScript mảng chiều dài, trả về số lượng phần tử trong một mảng, nhưng nó là giá trị một dựa trên. Vì vậy, bất cứ khi nào bạn muốn sử dụng thuộc tính của chiều dài trên mạng để nói rằng Hey Hey, hãy bắt đầu từ phần tử đầu tiên trong một mảng và đi cho đến khi bạn đạt được phần tử cuối cùng , nhưng Min Minus một!

Liên kết hữu ích cho các mảng JavaScript

Quản lý mảng javaScript với push (), pop (), shift () và unShift ()

Hai cách để tự động nối một phần tử vào mảng javascript

Cho dù bạn mã trong JavaScript, Python, Java, PHP, Ruby hay GO, để truy cập vào phần tử đầu tiên của mảng bạn sẽ cần tham khảo mảng [0]. Điều này thường gây nhầm lẫn cho các nhà phát triển mới - tại sao chúng ta bắt đầu số từ không? Liệu có phải là mảng [1] một sự lựa chọn rõ ràng hơn cho mục đầu tiên không?

Ảnh của Agence Productteurs Locaux Damien Kühn trên Unplash

Đầu tiên, nó có giá trị chỉ ra rằng không phải mọi ngôn ngữ lập trình đều theo số không dựa trên số không. Trước khi tôi quyết định viết bài đăng này, tôi đã biết về Lua & nbsp; Breaking & nbsp; Đó là quy ước, nhưng tôi rất ngạc nhiên khi phát hiện ra rằng đây không phải là một sự xuất hiện hiếm gặp như vậy.. Before I decided to write this post I was aware of Lua breaking that convention, but I was very surprised to discover that this is not such a rare occurrence.

AWK, COBOL, FORTRAN, R, JULIA, LUA, MATLAB, SMALLTALK, WOLFRAM Language - Trong tất cả các ngôn ngữ này, chỉ số mặc định của phần tử đầu tiên trong một mảng là một.

(Danh sách đầy đủ có thể được tìm thấy trên Wikipedia).

Câu trả lời phổ biến nhất cho câu hỏi đánh số mảng, chỉ ra rằng việc đánh số dựa trên không đến từ chính thiết kế ngôn ngữ. Trong c, một mảng chỉ vào vị trí trong bộ nhớ, do đó, trong mảng biểu thức [n], n không nên được coi là một chỉ số, mà là một phần bù từ đầu mảng.n], n should not be treated as an index, but as an offset from the array’s head.

Bộ nhớ tham khảo theo địa chỉ và phần bù được thể hiện trực tiếp trong phần cứng máy tính trên hầu hết tất cả các kiến ​​trúc máy tính, vì vậy chi tiết thiết kế này trong C giúp cho việc biên dịch dễ dàng hơn.

Để minh họa điều đó, chúng ta có thể chạy chương trình C dưới đây:

#include int main()
{
int data[6] = {1, 2, 3, 4, 5, 6};
int i = 0;

printf("Array address: %p\n", data);

do {
printf("Array[%u] = %p\n", i, (void *)(&data[i]));
i++;
} while(i < 6);
}

Output:


Array address: 0x7ffe9472bad0
Array[0] = 0x7ffe9472bad0
Array[1] = 0x7ffe9472bad4
Array[2] = 0x7ffe9472bad8
Array[3] = 0x7ffe9472badc
Array[4] = 0x7ffe9472bae0
Array[5] = 0x7ffe9472bae4

Như chúng ta có thể thấy trong ví dụ này, phần tử đầu tiên và mảng chính nó chỉ vào cùng một vị trí bộ nhớ, do đó, đó là 0 phần tử cách xa vị trí của chính mảng.0 elements away from the location of the array itself.

Mặt khác, tôi cũng phát hiện ra rằng nhiều câu trả lời chỉ ra bài viết được viết bởi Dijkstra: Tại sao việc đánh số nên bắt đầu ở mức 0. Nó giải thích vấn đề làm thế nào để biểu thị chuỗi con của các số tự nhiên. Tôi thấy lý do của nó thú vị từ quan điểm toán học. Tuy nhiên, vì ngôn ngữ C có trước bài viết này, nó dường như không liên quan đến câu hỏi.

JavaScript có tính từ 0 hoặc 1 không?

Mảng trong JavaScript là không dựa trên. Điều này có nghĩa là JavaScript bắt đầu đếm từ số 0 khi nó lập chỉ mục một mảng. Nói cách khác, giá trị chỉ mục của phần tử thứ nhất trong mảng là 0 0 và giá trị chỉ mục của phần tử thứ hai là 1 1, giá trị chỉ mục của phần tử thứ ba là 2 2, v.v.JavaScript starts counting from zero when it indexes an array. In other words, the index value of the first element in the array is “0” and the index value of the second element is “1”, the third element's index value is “2”, and so on.

Chiều dài mảng có bắt đầu 0 hay 1 không?

Mảng trong Java sử dụng đếm dựa trên không.Điều này có nghĩa là phần tử đầu tiên trong một mảng ở Index Zero.zero-based counting. This means that the first element in an array is at index zero.

Tại sao các mảng JavaScript bắt đầu ở 0?

Câu trả lời ngắn Một mảng là một con trỏ và chỉ mục được sử dụng làm phần bù.Phần tử đầu tiên của mảng chính xác là tại vị trí bộ nhớ của con trỏ;Do đó, phần bù bằng không.Vị trí bộ nhớ thứ hai là một khe nữa, do đó 1. Nếu chỉ mục bắt đầu ở 0, chỉ mục khớp với phần bù.If the index starts at 0, the index matches the offset.

Chúng ta có thể bắt đầu một mảng từ 1 không?

Năm 1957, Fortran được hình thành với chỉ số mảng bắt đầu là 1. Năm 2012, ngôn ngữ lập trình Julia được hình thành với chỉ số mảng bắt đầu là 1. Năm 2021, một ngôn ngữ mới có tên là "Ring" đã được phát hành có chỉ số mảng là1.. In 2012, Julia Programming Language was formed with the starting array index as 1. In 2021, a new language by the name of "Ring" was released which had array index as 1.