môn Toán. Hàm max[] thường lấy tất cả các phần tử trong một mảng và xem xét kỹ lưỡng từng giá trị để lấy giá trị lớn nhất. Đó là phương pháp được thảo luận trong ví dụ dưới đây
Bản thử trực tiếp
Thí dụ
đầu ra
55.
2] sắp xếp[]
Sử dụng hàm sắp xếp và so sánh, chúng ta có thể sắp xếp các phần tử trong mảng theo thứ tự giảm dần hoặc tăng dần, sau này sử dụng thuộc tính độ dài, chúng ta có thể tìm thấy giá trị cần thiết
Sử dụng phương thức có sẵn Math apply[], map[], reduce[] để lấy giá trị lớn nhất trong Mảng đối tượng trong JavaScript. Đối tượng Array cho phép bạn lưu trữ nhiều giá trị trong một biến duy nhất
Các cách để có được giá trị tối đa trong Mảng đối tượng. -
- Sử dụng phương thức apply[] và map[]
- mảng. phương pháp giảm []
- Sử dụng map[], Math và toán tử trải rộng
JavaScript nhận giá trị tối đa trong một mảng đối tượng Mã ví dụ
Hãy xem mã ví dụ HTML với các cách khác nhau. -
Sử dụng phương thức apply[] và map[]
Chương trình lấy giá trị lớn nhất của thuộc tính y bằng cách sử dụng phương thức apply[] và map[]
var array = [
{ "x": "3/10/2020", "y": 0.02352007 },
{ "x": "8/12/2021", "y": 0.0254234 },
{ "x": "1/16/2010", "y": 0.02433546 },
{ "x": "8/19/2015", "y": 0.0313423457 }];
console.log[JSON.stringify[array]];
var res = Math.max.apply[Math, array.map[function[o] {
return o.y; }]];
console.log["Maximum value of y = " + res];
Sử dụng giảm[]
Mã ví dụ về cách lấy giá trị lớn nhất của thuộc tính y bằng cách sử dụng phương thức reduce[]. Nó trả về toàn bộ đối tượng
var array = [
{ "x": "3/10/2020", "y": 0.02352007 },
{ "x": "8/12/2021", "y": 0.0254234 },
{ "x": "1/16/2010", "y": 0.02433546 },
{ "x": "8/19/2015", "y": 0.0313423457 }];
console.log[JSON.stringify[array]];
var res = JSON.stringify[array.reduce[function[prev, current] {
return [prev.y > current.y] ? prev : current }]];
console.log["Maximum value of y = " + res];
Sử dụng map[], Math và toán tử trải rộng
Đã tạo một hàm để lấy tối đa và tối thiểu từ Array
var data = [
{ "x": "3/10/2020", "y": 0.02352007 },
{ "x": "8/12/2021", "y": 0.0254234 },
{ "x": "1/16/2010", "y": 0.02433546 },
{ "x": "8/19/2015", "y": 0.0313423457 }];
console.log[JSON.stringify[data]];
function getYs[]{
return data.map[d => d.y];
}
function getMinY[]{
return Math.min[...getYs[]];
}
function getMaxY[]{
return Math.max[...getYs[]];
}
var res = getMaxY[];
console.log["Maximum value of y = " + res];
đầu ra. Kết quả sẽ giống nhau cho tất cả các mã vì các giá trị Mảng đã cho giống nhau
Hãy bình luận nếu bạn có bất kỳ nghi ngờ và đề xuất nào về chủ đề Mảng JS này
Ghi chú. Tất cả mã Ví dụ về JS đều được thử nghiệm trên trình duyệt Firefox và trình duyệt Chrome
hệ điều hành. cửa sổ 10
Mã số. Phiên bản HTML5
Rohit
Bằng cấp về Khoa học Máy tính và Kỹ sư. Nhà phát triển ứng dụng và có kinh nghiệm về nhiều ngôn ngữ lập trình. Đam mê công nghệ & thích học hỏi kỹ thuật
Hãy xem xét mảng đối tượng JavaScript sau. Mỗi đối tượng đại diện cho một người chơi trong nền tảng trò chơi bao gồm một mã định danh duy nhất [
55.4],
55.5 của họ và số lượng
55.6 đã đạt được
const players = [{
id: 1,
name: "Leanne Graham",
wins: 13,
}, {
id: 2,
name: "Ervin Howell",
wins: 8,
}, {
id: 3,
name: "Clementine Bauch",
wins: 19
}];
Làm thế nào để bạn tìm thấy người chơi có nhiều chiến thắng nhất?
Một đặc điểm đáng chú ý của mảng này là nó chưa được sắp xếp nên chúng ta không thể đơn giản lấy phần tử đầu tiên [hoặc cuối cùng, tùy thuộc vào hướng sắp xếp]. Thay vào đó, chúng ta cần một thuật toán so sánh các phần tử với nhau và trả về phần tử có giá trị
55.6 tối đa
Mảng. giảm là bạn của chúng tôi ở đây. Nếu bạn chưa từng thấy chữ ký hàm trước đây, nó sẽ đọc hơi khó hiểu
Hãy áp dụng
55.8 cho trường hợp sử dụng của chúng ta để tìm phần tử có giá trị lớn nhất trong mảng của chúng ta
const playerWithMostWins = players.reduce[
[prev, current] => {
return prev.wins > current.wins ? prev : current
}
];
Và nếu bạn cần thay đổi logic thành người chơi có ít chiến thắng nhất [vì bức tường xấu hổ?], thì đó là chức năng tương tự nhưng chỉ với một chức năng so sánh khác
Tại sao không mảng. tìm hoặc Toán. tối đa?
const playerWithMostWins = players.reduce[
[prev, current] => {
return prev.wins > current.wins ? prev : current
}
];
0 là một hàm rất hữu ích nhưng chỉ khi bạn có thể xác định xem bạn có đúng mục hay không một cách độc lập với các mục khác trong mảng, e. g. tìm người chơi có tên const playerWithMostWins = players.reduce[
[prev, current] => {
return prev.wins > current.wins ? prev : current
}
];
1const leanne = players.find[p => p.name === "Leanne Graham"];
const playerWithMostWins = players.reduce[
[prev, current] => {
return prev.wins > current.wins ? prev : current
}
];
2 có thể được sử dụng nếu bạn chỉ quan tâm đến giá trị thay vì mục chứa giá trị, e. g. tìm số lần thắng tối đa55.1
Nhưng hãy nhớ rằng đây là một hoạt động của
const playerWithMostWins = players.reduce[
[prev, current] => {
return prev.wins > current.wins ? prev : current
}
];
3, vì vậy bạn vẫn nên sử dụng 55.8
Nguyên tắc chung của tôi khi tôi cần đạt tới
55.8 là nếu tôi đang sử dụng các từ so sánh trong câu hỏi mà tôi đang cố hỏi. Các từ so sánh phổ biến là nhất, ít nhất, tối đa, thấp nhất, mới nhất, cũ nhất, v.v.
- Người dùng nào có nhiều người theo dõi nhất?
- Quảng cáo nào có số lượng nhấp chuột ít nhất?
- Quỹ nào có năng suất tối đa?
- Người dùng nào có số lượng bài đăng thấp nhất?
- Tập tin nào là cũ nhất?
- Trò chơi nào là mới nhất?
Một trường hợp sử dụng phổ biến đối với tôi khi sử dụng phương pháp
55.8 này là khi tôi cần điều chỉnh React UI một cách có điều kiện dựa trên các giá trị tương đối của một phần tử
Quay lại ví dụ ban đầu của chúng tôi, khi tôi biết người chơi nào giành được nhiều chiến thắng nhất, tôi có thể đặt biểu tượng cảm xúc chiếc cúp vô cùng quý giá này 🏆 bên cạnh tên của họ
- Leanne Graham [13]
- Ervin Howell [8]
- Clementine Bauch [19] 🏆
Và đây là mã thành phần đầy đủ
55.3
Vì vậy, lần tới khi bạn cần một cách nhanh chóng và dễ dàng để tìm phần tử mảng có nhiều nhất hoặc ít nhất một thứ gì đó, tôi hy vọng bạn sẽ cân nhắc
55.8