Trong bài này, chúng ta được cung cấp một mảng đối tượng và nhiệm vụ là lấy giá trị lớn nhất và nhỏ nhất từ mảng đối tượng. Đối với phương pháp này, chúng tôi có một vài phương pháp sẽ được thảo luận dưới đây
Phương thức áp dụng Javascript (). Nó là một phương thức ghi được sử dụng trên các đối tượng khác nhau. Phương thức này khác với phương thức gọi hàm() vì lấy đối số làm mảng.
cú pháp.
apply()Phương thức JavaScript Array map(). Phương thức này dùng để tạo một mảng mới với kết quả gọi hàm cho từng phần tử của mảng. Phương thức này gọi hàm đã cho một lần cho mỗi phần tử trong một mảng, theo thứ tự.
cú pháp.
array.map(function(cValue, index, arr), thisValue)Ví dụ. Ví dụ này lấy giá trị nhỏ nhất của thuộc tính y bằng cách sử dụng mảng. phương pháp giảm (). Nó trả về toàn bộ đối tượng
Giả sử bạn có đối tượng JavaScript sau và bạn cần tìm khóa có giá trị cao nhất - trong trường hợp này là array.map(function(cValue, index, arr), thisValue)3
const numberObj = { a: 1, b: 50, c: 12 }
Đây là một chức năng nhanh để giúp bạn làm điều đó. Giải pháp được viết bằng TypeScript, vì vậy nếu bạn đang tìm kiếm một giải pháp JS thuần túy, chỉ cần xóa các loại 😊
Chúng ta sẽ thảo luận về cách tìm chỉ mục của giá trị lớn nhất trong một mảng bằng Javascript. Đây là một nhiệm vụ đơn giản có thể được thực hiện bằng cách sử dụng công cụ Math tích hợp sẵn. hàm tối đa (). Tuy nhiên hàm này chỉ trả về giá trị lớn nhất chứ không trả về chỉ số. Để lấy chỉ mục, chúng ta sẽ sử dụng Array. hàm indexOf()
Nếu bạn có một mảng và bạn muốn lấy chỉ mục của giá trị tối đa bằng mã Javascript, bạn có thể sử dụng một trong các phương pháp được giải thích trong bài viết này
Giải pháp 1. Sử dụng toán học. max(), indexOf() và toán tử trải phổ
Để tìm chỉ số của giá trị lớn nhất trong một mảng bằng Javascript, chúng ta có thể sử dụng Math. hàm max() kết hợp với Array. hàm indexOf() và toán tử trải phổ
Toán tử trải rộng cho phép chúng ta trải rộng các phần tử của một mảng thành các giá trị riêng lẻ, giúp làm việc với chúng dễ dàng hơn. Bằng cách sử dụng Toán học. max() và indexOf() cùng nhau, chúng ta có thể dễ dàng tìm thấy chỉ mục của giá trị lớn nhất trong một mảng
cú pháp
Array.indexOf(Math.max(...Array));Ví dụ về mã
// create an array const arr = [30, 20, 50, 70, 10, 40, 17]; console.log("Array is: ", arr); // find the max value const max_val = Math.max(...arr); // find the index of highest value const max_index = arr.indexOf(max_val); console.log("Max value index is: " + max_index);đầu ra
Array is: [30,20,50,70,10,40,17] Max value index is: 3Bản thử trực tiếp
Chúng tôi có thể viết điều này trong một dòng bằng mã dưới đây
arr.indexOf(Math.max(...arr));Mã này định nghĩa một mảng có tên là arr và gán cho nó các giá trị số nguyên. Sau đó, giá trị tối đa trong mảng được tìm thấy bằng Math. hàm tối đa (). Cuối cùng, chỉ mục của giá trị lớn nhất được tìm thấy bằng cách sử dụng hàm indexOf()
Nếu bạn không muốn sử dụng toán tử trải rộng bên trong Math. max(), bạn có thể sử dụng Math. tối đa. apply() và truyền null làm tham số đầu tiên và mảng làm tham số thứ hai
const arr = [30, 20, 50, 70, 10, 40, 17]; const max_value = Math.max.apply(null, arr); const max_index = arr.indexOf(max_value); console.log("Max index is: " + max_index);đầu ra
________số 8Bản thử trực tiếp
Giải pháp 2. Tìm chỉ số của giá trị lớn nhất trong mảng bằng vòng lặp For
Nếu bạn cần tìm chỉ mục của giá trị lớn nhất trong một mảng, bạn có thể làm như vậy bằng cách sử dụng vòng lặp for trong Javascript. Phương thức này sẽ lặp qua mảng và so sánh từng giá trị với giá trị tối đa hiện tại. Nếu giá trị lớn hơn giá trị tối đa hiện tại, nó sẽ cập nhật giá trị tối đa và chỉ mục của nó
Quá trình này sẽ tiếp tục cho đến khi kết thúc mảng, tại thời điểm đó chỉ số của giá trị lớn nhất sẽ được trả về
const arr = [30, 20, 50, 70, 10, 40, 17]; let max_val = arr[0]; let max_index = 0; for (let i=0; i < arr.length; i++) { if (arr[i] > max_val) { max_val = arr[i]; max_index = i; } } console.log("Maximum value is: " + max_val); console.log("Maximum value index is: " + max_index);đầu ra
array.map(function(cValue, index, arr), thisValue)0Bản thử trực tiếp
Mã này là một ví dụ về cách tìm giá trị lớn nhất trong một mảng. Nó bắt đầu bằng cách đặt giá trị tối đa thành giá trị đầu tiên trong mảng và chỉ mục giá trị tối đa thành 0
Sau đó, nó lặp qua mảng và nếu nó tìm thấy một giá trị lớn hơn giá trị tối đa, nó sẽ đặt giá trị tối đa cho giá trị đó và đặt chỉ mục giá trị tối đa thành chỉ mục của giá trị đó
Cuối cùng, nó in giá trị lớn nhất và chỉ số giá trị lớn nhất ra bàn điều khiển
Để có hiệu suất cao hơn, hãy sử dụng các phương thức vòng lặp For để tìm chỉ số giá trị lớn nhất từ mảng
Giải pháp 3. Sử dụng mảng. chức năng giảm ()
Để tìm chỉ mục của giá trị lớn nhất trong một mảng, mảng. hàm reduce() có thể được sử dụng. Hàm này nhận hàm gọi lại làm đối số và áp dụng hàm đó cho từng phần tử trong mảng, để giảm mảng thành một giá trị
Trong trường hợp này, hàm gọi lại sẽ là hàm so sánh phần tử hiện tại với giá trị tối đa được thấy cho đến nay và nếu phần tử hiện tại lớn hơn giá trị tối đa, thì chỉ mục của phần tử đó được trả về
Ví dụ về mã
array.map(function(cValue, index, arr), thisValue)1đầu ra
array.map(function(cValue, index, arr), thisValue)2Bản thử trực tiếp
Đoạn mã trên là một ví dụ về việc tìm chỉ mục của giá trị lớn nhất trong một mảng bằng cách sử dụng phương thức reduce(). Phương thức reduce() lấy một mảng và giảm nó xuống một giá trị duy nhất. Trong trường hợp này, chúng tôi đang giảm nó xuống chỉ số của giá trị tối đa