Thủ thuật thú vị ở đây, tôi đã có một lựa chọn nit với rất nhiều câu trả lời truyền thống an toàn không lưu vào bộ nhớ cache độ dài của mảng.
function arraySum(array){
var total = 0,
len = array.length;
for (var i = 0; i < len; i++){
total += array[i];
}
return total;
};
var my_array = [1,2,3,4];
// Returns 10
console.log( arraySum( my_array ) );
Nếu không lưu vào bộ nhớ cache độ dài của mảng, trình biên dịch JS cần đi qua mảng với mỗi lần lặp của vòng lặp để tính toán độ dài, trong hầu hết các trường hợp, nó không cần thiết. V8 và rất nhiều trình duyệt hiện đại tối ưu hóa điều này cho chúng tôi, vì vậy nó ít phải quan tâm hơn, nhưng có những thiết bị cũ hơn được hưởng lợi từ bộ nhớ đệm đơn giản này.
Nếu độ dài có thể thay đổi, bộ nhớ đệm có thể gây ra một số tác dụng phụ không mong muốn nếu bạn không biết tại sao bạn lại lưu vào bộ nhớ cache, nhưng đối với chức năng có thể sử dụng lại, mục đích duy nhất là lấy một mảng và cộng các giá trị lại với nhau phù hợp.
Đây là một liên kết CodePen cho hàm ArraySum này.
http://codepen.io/brandonbrule/pen/ZGEJyV
Có thể đây là một suy nghĩ lỗi thời đã bị mắc kẹt với tôi, nhưng tôi không thấy bất lợi khi sử dụng nó trong bối cảnh này.