Javascript lấy khóa mảng tối đa

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: 3

Bả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ố 8

Bả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)
0

Bả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)
2

Bả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

Làm cách nào để nhận giá trị tối đa trong mảng JavaScript?

Lấy phần tử lớn nhất của mảng .
mảng const = [1, 2, 3]; . rút gọn((a, b) => Toán. max(a, b), -Infinity);.
hàm getMaxOfArray(numArray) { return Toán học. tối đa. áp dụng (null, numArray); .
mảng const = [1, 2, 3]; . tối đa (. mảng);

Làm cách nào để tìm khóa có giá trị tối đa trong JavaScript?

Để lấy các giá trị tối thiểu và tối đa trong một Đối tượng. .
Sử dụng đối tượng. keys() để lấy một mảng các khóa của đối tượng
Ánh xạ qua các phím để lấy một mảng các giá trị của đối tượng
Sử dụng chức năng. phương thức apply() để gọi Math. tối thiểu () và Toán. tối đa()

Làm cách nào để lấy giá trị khóa cụ thể từ đối tượng trong JavaScript?

Làm cách nào để lấy Khóa, Giá trị và Mục nhập trong Đối tượng JavaScript? .
Vật. keys(obj) – trả về tất cả các khóa của đối tượng dưới dạng mảng
Vật. giá trị (obj) – trả về tất cả các giá trị của đối tượng dưới dạng mảng
Vật. entry(obj) – trả về một mảng [key, value]