Hướng dẫn why do we subtract 1 from array length in javascript? - tại sao chúng ta lại trừ 1 từ độ dài mảng trong javascript?

Đó là để ngăn chặn các lỗi hàng rào, hay còn gọi là "ngoài một".

Câu hỏi thi thông thường:

Bạn được yêu cầu xây dựng 100 mét hàng rào, với một hàng rào mỗi mét. Bạn sẽ cần bao nhiêu hàng rào?

Rõ ràng câu trả lời nhanh chóng (và sai):

    100 meters
  --------------- = 100 posts
     1 post
     ------
     meter

Bởi vì trong 100 mét hàng rào, bạn cần 101 bài viết:

Distance:    1 2  ....  99 100
            |-|-|.....| - | - |
Post:       1 2 3 ....99  100 101

Bây giờ với các mảng, điều tương tự xảy ra. Giả sử đó là một mảng với 5 mục:

for (i = 0 ; i <= 5; i++)
                  ^--length of array

Bạn cuối cùng đang làm

        i:    0, 1, 2, 3, 4, 5
iteration:    1  2  3  4  5  6

Ối. 5 Mảng vật phẩm, nhưng bạn đã thực hiện vòng lặp của mình 6 lần - một lần quá nhiều.

Bạn có thể sửa lỗi theo hai cách:

for (i = 0; i < length; i++)
              ^---change from "<=" to "<"

hoặc

for (i = 0; i <= length - 1; i++)
                        ^---change the upper limit value.

Trả lời 512F2EF006D5CF51B300AB29

Đếm bắt đầu từ 0, không phải từ một, vì vậy chúng ta cần điều chỉnh bằng cách trừ đi tất cả các cách thông qua mảng.

Giá trị đầu tiên trong mảng là [0] (số mảng luôn ít hơn một giá trị số thứ hai thông thường 1-1 = 0) là [1] (2-1 = 1), v.v. Vì vậy, phần tử cuối cùng là chiều dài của mảng - 1

Để kiểm tra xem bạn có đạt được giá trị cuối cùng không, bạn có thể làm

điểm

hơn 9 năm

2 bình luận

Cảm ơn bạn. Nó có ý nghĩa bây giờ !!!

Sẽ là, để truy cập chỉ mục của một phần tử mảng, bởi vì chỉ số của một phần tử mảng luôn luôn ít hơn 1 độ dài mảng?

Hướng dẫn why do we subtract 1 from array length in javascript? - tại sao chúng ta lại trừ 1 từ độ dài mảng trong javascript?

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

Tại sao chúng ta trừ 1 từ độ dài mảng?

Nếu bạn không trừ 1 độ dài mảng, bạn sẽ gặp lỗi.Bởi vì không có ElementofArray [4] đại diện cho bất kỳ yếu tố nào trong mảng của bạn.Because there is no elementOfArray[4] that represents any element of your array.

Tại sao chúng ta sử dụng độ dài mảng 1?

Đ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.The JavaScript array length property is given in a one-based context. So, a JavaScript array with one element will have a “length” of “1”. If a JavaScript array has four elements, then that array's “length” property will have a value of “four”.

Độ dài mảng có tính từ 0 hoặc 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.

Nums chiều dài 1 làm gì?

Chiều dài-1 là chỉ số cuối cùng trong số mảng.Nhưng thông thường, trong một vòng lặp đi qua tất cả các yếu tố của một mảng j the last index in the array number . But usually, in a for loop to go through all elements of an array j < number. length would be a good end condition for the loop because it would stop and not execute the loop body once j reaches number.