Đếm số lượng tất cả các phần tử có trong mảng hai chiều
Chào các bạn
Trong bài viết này mình sẽ hướng dẫn các bạn làm bài tập.
- Đếm số lượng tất cả các phần tử có trong mảng hai chiều.
Giải Thuật
Trước khi bắt đầu mình cũng nói trước mảng 2 chiều cho các bạn dễ hình dung nhé.
1let arr = [ 2 [1, 2, 3], 3 [4, 5, 6], 4 [7, 8, 9] 5]
Ví dụ trên chính là mảng 2 chiều.
Cũng như các bài tập khác. Chúng ta cũng sẽ đi từng bước cho các bạn mới học dể hình dung nhé.
- Viết chức năng
Chức năng này chỉ việc đếm tất cả các phần tử trong mảng 2 chiều. Nên chúng ta cũng đặt tên sao cho đúng với việc nó làm nhé.
1function getCountArr(arr) { 2 if (!Array.isArray(arr)) { 3 throw new Error(`Kiểu ${typeof arr} không phải là mảng`); 4 } 5 6 let count = arr.reduce((tong, value) => { 7 if (Array.isArray(value)) { 8 tong += value.length; 9 } else { 10 tong += 1; 11 } 12 return tong; 13 }, 0); 14 15 return count; 16}
Chức năng chúng ta chỉ cần có vậy. Tuy không hoàn hảo nhưng đủ để đưa ra kết quả.
- Gọi chức năng
Việt gọi chức năng thì rất đơn giản. Cái này thì ai mà chả biết. Đơn nhiên nếu bạn mới học thì sẽ ko biết. Hi
1let countArr = getCountArr(arr);
Chúng ta bạo biến countArr dùng lưu trử kết quả mà cuộc gọi chức năng getCountArr(arr) trả về.
arr ở đây chính là mảng đầu vào của chúng ta
- Ví dụ hoàn chỉnh
1let arr = [ 2 [1, 2, 3], 3 [4, 5, 6], 4 [7, 8, 9], 5]; 6 7function getCountArr(arr) { 8 if (!Array.isArray(arr)) { 9 throw new Error(`Kiểu ${typeof arr} không phải là mảng`); 10 } 11 12 let count = arr.reduce((tong, value) => { 13 if (Array.isArray(value)) { 14 tong += value.length; 15 } else { 16 tong += 1; 17 } 18 return tong; 19 }, 0); 20 21 return count; 22} 23 24let countArr = getCountArr(arr); 25 26console.log(countArr); // 9
Rất đơn giản đúng không các bạn. Nói chung nhiều cách lắm. Quan trọng chúng ta có đầu vào như thế nào. Nếu muốn chắc chắn hơn nữa thì làm cái chức năng kiểm tra đó có phải là mảng 2 chiều không.
Rất rất là nhiều thứ cần phải kiểm tra nếu chúng ta cần chính xác.
Cách trên ko hoàn hảo nếu có nhiều giá trị lồng nhau sâu nữa. Nếu vậy thì các bạn dùng cách này nhé. Đơn giản cực kỳ.
1let arr = [ 2 [1, 2, 3], 3 [4, 5, [2, 3], 6], 4 [7, 8, 9, [6, 4, [1, 2]]], 5 1, 6 3 7]; 8 9function getCountArr(arr) { 10 if (!Array.isArray(arr)) { 11 throw new Error(`Kiểu ${typeof arr} không phải là mảng`); 12 } 13 14 return arr.flat(Infinity).length; 15} 16 17let countArr = getCountArr(arr); 18 19console.log(countArr); // 17
Vậy là xong. Bạn nhìn đầu vào là thấy.
Tổng kêt
Trong bài viết này mình đã hướng dẫn các bạn đếm tất cả số lượng các phần tử có trong mảng 2 chiều.
Đi cùng với đó là ví dụ phức tạp hơn. Hỗn hợp
- đếm
- giải thuật
- mảng
Các bài viết liên quan
Các phương pháp và tài sản của lớp String
Chúng ta cùng tìm hiểu qua các phương pháp và tài sản của lớp String nhé.JavascriptPhương pháp lặp Symbol.iterator
Phương pháp lặp [Symbol.iterator]() là gì?. Cùng nhau tìm hiểu cách thức hoạt động của nó.JavascriptCác phương pháp tỉnh Object.keys values entries
Cùng nhau tìm hiểu về các phương pháp tỉnh Object.keys() Object.values() Object.entries()JavascriptTạo chức năng nhập vào một số.
Đầu vào yêu cầu nhập vào một số. Nếu đó không phải là số thì bắt nhập lại.Giải ThuậtĐếm số lượng các ký tự Hoa có trong chuỗi
Cùng nhau rèn luyện tư duy với chuỗi nhé. Đơn giản thôi.Giải Thuật