Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

Làm thế nào về việc tăng cường đối tượng mảng tích hợp để sử dụng ____ 57/________ 58 Thay vào đó:

Show

Array.prototype.max = function() {
  return Math.max.apply(null, this);
};

Array.prototype.min = function() {
  return Math.min.apply(null, this);
};

let p = [35,2,65,7,8,9,12,121,33,99];

console.log(`Max value is: ${p.max()}` +
  `\nMin value is: ${p.min()}`);

Đây là một jsfiddle.JSFiddle.

Tăng cường các bản dựng có thể gây va chạm với các thư viện khác (một số xem), vì vậy bạn có thể thoải mái hơn chỉ với ________ 59'ing

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (Number(arr[len]) < min) {
      min = Number(arr[len]);
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (Number(arr[len]) > max) {
      max = Number(arr[len]);
    }
  }
  return max;
};
0 trực tiếp cho mảng của bạn:

var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);

Thay phiên, giả sử Trình duyệt của bạn hỗ trợ Ecmascript 6, bạn có thể sử dụng cú pháp lan truyền có chức năng tương tự như phương thức

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
9:

var min = Math.min( ...arr ),
    max = Math.max( ...arr );

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

Robg

Huy hiệu vàng 138K3030 gold badges170 silver badges207 bronze badges

Đã trả lời ngày 3 tháng 11 năm 2009 lúc 18:23Nov 3, 2009 at 18:23

Roatin Marthroatin MarthRoatin Marth

Phù vàng 23K3 Huy hiệu bạc 55 Huy hiệu Đồng3 gold badges51 silver badges55 bronze badges

14

Sử dụng toán tử lây lan (ES6)

Math.max(...array)  // The same with "min" => Math.min(...array)

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

Khí

5.3702 Huy hiệu vàng24 Huy hiệu bạc32 Huy hiệu Đồng2 gold badges24 silver badges32 bronze badges

Đã trả lời ngày 23 tháng 8 năm 2016 lúc 16:37Aug 23, 2016 at 16:37

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

Abdennour toumiabdennour toumiAbdennour TOUMI

80.9K36 Huy hiệu vàng233 Huy hiệu bạc243 Huy hiệu Đồng36 gold badges233 silver badges243 bronze badges

10

Đối với các mảng lớn (~ 10⁷ phần tử),

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
8 và
function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
7 đều tạo ra lỗi sau trong node.js.

RangeError: vượt quá kích thước ngăn xếp cuộc gọi tối đa

Một giải pháp mạnh mẽ hơn là không thêm mọi yếu tố vào ngăn xếp cuộc gọi, mà thay vào đó là vượt qua một mảng:

function arrayMin(arr) {
  return arr.reduce(function (p, v) {
    return ( p < v ? p : v );
  });
}

function arrayMax(arr) {
  return arr.reduce(function (p, v) {
    return ( p > v ? p : v );
  });
}

Nếu bạn lo lắng về tốc độ, mã sau sẽ nhanh hơn ~ 3 lần thì

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (Number(arr[len]) < min) {
      min = Number(arr[len]);
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (Number(arr[len]) > max) {
      max = Number(arr[len]);
    }
  }
  return max;
};
4 là trên máy tính của tôi. Xem https://jsben.ch/jpoyl.

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};

Nếu các mảng của bạn chứa các chuỗi thay vì số, bạn cũng cần ép chúng thành các số. Mã dưới đây làm điều đó, nhưng nó làm chậm mã xuống ~ 10 lần trên máy của tôi. Xem https://jsben.ch/upipd.

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (Number(arr[len]) < min) {
      min = Number(arr[len]);
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (Number(arr[len]) > max) {
      max = Number(arr[len]);
    }
  }
  return max;
};

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

Đã trả lời ngày 18 tháng 11 năm 2012 lúc 14:00Nov 18, 2012 at 14:00

Linus Unnebäcklinus UnnebäckLinus Unnebäck

21.3K12 Huy hiệu vàng71 Huy hiệu bạc88 Huy hiệu đồng12 gold badges71 silver badges88 bronze badges

6

tl;dr

// For regular arrays:
var max = Math.max(...arrayOfNumbers);

// For arrays with tens of thousands of items:
let max = testArray[0];
for (let i = 1; i < testArrayLength; ++i) {
  if (testArray[i] > max) {
    max = testArray[i];
  }
}

Giải pháp MDN

Các tài liệu chính thức của MDN trên

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (Number(arr[len]) < min) {
      min = Number(arr[len]);
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (Number(arr[len]) > max) {
      max = Number(arr[len]);
    }
  }
  return max;
};
5 đã bao gồm vấn đề này:

Hàm sau sử dụng hàm.prototype.apply () để tìm phần tử tối đa trong một mảng số.

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (Number(arr[len]) < min) {
      min = Number(arr[len]);
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (Number(arr[len]) > max) {
      max = Number(arr[len]);
    }
  }
  return max;
};
6 tương đương với
function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (Number(arr[len]) < min) {
      min = Number(arr[len]);
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (Number(arr[len]) > max) {
      max = Number(arr[len]);
    }
  }
  return max;
};
7, nhưng bạn có thể sử dụng
function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (Number(arr[len]) < min) {
      min = Number(arr[len]);
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (Number(arr[len]) > max) {
      max = Number(arr[len]);
    }
  }
  return max;
};
8 trên các mảng được xây dựng theo chương trình ở bất kỳ kích thước nào.

function getMaxOfArray(numArray) {
    return Math.max.apply(null, numArray);
}

Hoặc với toán tử lây lan mới, nhận được tối đa của một mảng trở nên dễ dàng hơn rất nhiều.

var arr = [1, 2, 3];
var max = Math.max(...arr);

Kích thước tối đa của một mảng

Theo MDN, các giải pháp lây lan

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
9 và lan truyền có giới hạn là 65536 xuất phát từ giới hạn số lượng đối số tối đa:

Nhưng hãy cẩn thận: Trong việc sử dụng áp dụng theo cách này, bạn có nguy cơ vượt quá giới hạn độ dài đối số của động cơ JavaScript. Hậu quả của việc áp dụng một chức năng với quá nhiều đối số (nghĩ nhiều hơn hàng chục ngàn đối số) khác nhau giữa các động cơ (JavaScriptCore có giới hạn đối số khó mã hành vi) không được xác định. Một số động cơ sẽ ném một ngoại lệ. Một cách nghiêm túc hơn, những người khác sẽ tùy ý giới hạn số lượng đối số thực sự được truyền cho chức năng được áp dụng. Để minh họa trường hợp sau này: nếu một động cơ như vậy có giới hạn bốn đối số (tất nhiên giới hạn thực tế cao hơn đáng kể), thì sẽ như thể các đối số 5, 6, 2, 3 đã được thông qua để áp dụng trong các ví dụ trên, thay vì mảng đầy đủ.JavaScriptCore has hard-coded argument limit of 65536), because the limit (indeed even the nature of any excessively-large-stack behavior) is unspecified. Some engines will throw an exception. More perniciously, others will arbitrarily limit the number of arguments actually passed to the applied function. To illustrate this latter case: if such an engine had a limit of four arguments (actual limits are of course significantly higher), it would be as if the arguments 5, 6, 2, 3 had been passed to apply in the examples above, rather than the full array.

Họ thậm chí còn cung cấp một giải pháp lai không thực sự có hiệu suất tốt so với các giải pháp khác. Xem bài kiểm tra hiệu suất dưới đây để biết thêm.

Trong năm 2019, giới hạn thực tế là kích thước tối đa của ngăn xếp cuộc gọi. Đối với các trình duyệt máy tính để bàn dựa trên crom hiện đại, điều này có nghĩa là khi tìm kiếm tối đa/tối đa với

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
9 hoặc lây lan, thực tế kích thước tối đa cho số chỉ các mảng là ~ 120000. Trên đây, sẽ có một luồng tràn ngăn xếp và lỗi sau sẽ được ném:actual limit is the maximum size of the call stack. For modern Chromium based desktop browsers this means that when it comes to finding min/max with
function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
9 or spread, practically the maximum size for numbers only arrays is ~120000. Above this, there will be a stack overflow and the following error will be thrown:

RangeError: vượt quá kích thước ngăn xếp cuộc gọi tối đa

Một giải pháp mạnh mẽ hơn là không thêm mọi yếu tố vào ngăn xếp cuộc gọi, mà thay vào đó là vượt qua một mảng:

Nếu bạn lo lắng về tốc độ, mã sau sẽ nhanh hơn ~ 3 lần thì

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (Number(arr[len]) < min) {
      min = Number(arr[len]);
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (Number(arr[len]) > max) {
      max = Number(arr[len]);
    }
  }
  return max;
};
4 là trên máy tính của tôi. Xem https://jsben.ch/jpoyl. Running this script takes time and depending on the performance of your system it might slow or crash your browser/system!

var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
0

Nếu các mảng của bạn chứa các chuỗi thay vì số, bạn cũng cần ép chúng thành các số. Mã dưới đây làm điều đó, nhưng nó làm chậm mã xuống ~ 10 lần trên máy của tôi. Xem https://jsben.ch/upipd.

Đã trả lời ngày 18 tháng 11 năm 2012 lúc 14:00random number only array with 100000 items.

Linus Unnebäcklinus Unnebäckstandard loop (which BTW doesn't have the size limitation) is the fastest everywhere.

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
9 and spread comes closely after it, then much later MDN's hybrid solution then
// For regular arrays:
var max = Math.max(...arrayOfNumbers);

// For arrays with tens of thousands of items:
let max = testArray[0];
for (let i = 1; i < testArrayLength; ++i) {
  if (testArray[i] > max) {
    max = testArray[i];
  }
}
2 as the slowest.

21.3K12 Huy hiệu vàng71 Huy hiệu bạc88 Huy hiệu đồng

Giải pháp MDN

Các tài liệu chính thức của MDN trên function arrayMin(arr) { var len = arr.length, min = Infinity; while (len--) { if (Number(arr[len]) < min) { min = Number(arr[len]); } } return min; }; function arrayMax(arr) { var len = arr.length, max = -Infinity; while (len--) { if (Number(arr[len]) > max) { max = Number(arr[len]); } } return max; }; 5 đã bao gồm vấn đề này:

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

Hàm sau sử dụng hàm.prototype.apply () để tìm phần tử tối đa trong một mảng số. function arrayMin(arr) { var len = arr.length, min = Infinity; while (len--) { if (Number(arr[len]) < min) { min = Number(arr[len]); } } return min; }; function arrayMax(arr) { var len = arr.length, max = -Infinity; while (len--) { if (Number(arr[len]) > max) { max = Number(arr[len]); } } return max; }; 6 tương đương với function arrayMin(arr) { var len = arr.length, min = Infinity; while (len--) { if (Number(arr[len]) < min) { min = Number(arr[len]); } } return min; }; function arrayMax(arr) { var len = arr.length, max = -Infinity; while (len--) { if (Number(arr[len]) > max) { max = Number(arr[len]); } } return max; }; 7, nhưng bạn có thể sử dụng function arrayMin(arr) { var len = arr.length, min = Infinity; while (len--) { if (Number(arr[len]) < min) { min = Number(arr[len]); } } return min; }; function arrayMax(arr) { var len = arr.length, max = -Infinity; while (len--) { if (Number(arr[len]) > max) { max = Number(arr[len]); } } return max; }; 8 trên các mảng được xây dựng theo chương trình ở bất kỳ kích thước nào.

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

Hoặc với toán tử lây lan mới, nhận được tối đa của một mảng trở nên dễ dàng hơn rất nhiều.

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

Kích thước tối đa của một mảng

Theo MDN, các giải pháp lây lan

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
9 và lan truyền có giới hạn là 65536 xuất phát từ giới hạn số lượng đối số tối đa:Jun 14, 2015 at 21:22

Nhưng hãy cẩn thận: Trong việc sử dụng áp dụng theo cách này, bạn có nguy cơ vượt quá giới hạn độ dài đối số của động cơ JavaScript. Hậu quả của việc áp dụng một chức năng với quá nhiều đối số (nghĩ nhiều hơn hàng chục ngàn đối số) khác nhau giữa các động cơ (JavaScriptCore có giới hạn đối số khó mã hành vi) không được xác định. Một số động cơ sẽ ném một ngoại lệ. Một cách nghiêm túc hơn, những người khác sẽ tùy ý giới hạn số lượng đối số thực sự được truyền cho chức năng được áp dụng. Để minh họa trường hợp sau này: nếu một động cơ như vậy có giới hạn bốn đối số (tất nhiên giới hạn thực tế cao hơn đáng kể), thì sẽ như thể các đối số 5, 6, 2, 3 đã được thông qua để áp dụng trong các ví dụ trên, thay vì mảng đầy đủ.totymedli

Họ thậm chí còn cung cấp một giải pháp lai không thực sự có hiệu suất tốt so với các giải pháp khác. Xem bài kiểm tra hiệu suất dưới đây để biết thêm.20 gold badges128 silver badges160 bronze badges

4

Nếu bạn hoang tưởng như tôi về việc sử dụng

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (Number(arr[len]) < min) {
      min = Number(arr[len]);
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (Number(arr[len]) > max) {
      max = Number(arr[len]);
    }
  }
  return max;
};
4 (có thể gây ra lỗi khi đưa ra các mảng lớn theo MDN), hãy thử điều này:

var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
1

Hoặc, trong ES6:

var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
2

Các chức năng ẩn danh là không may cần thiết (thay vì sử dụng

// For regular arrays:
var max = Math.max(...arrayOfNumbers);

// For arrays with tens of thousands of items:
let max = testArray[0];
for (let i = 1; i < testArrayLength; ++i) {
  if (testArray[i] > max) {
    max = testArray[i];
  }
}
5 vì
// For regular arrays:
var max = Math.max(...arrayOfNumbers);

// For arrays with tens of thousands of items:
let max = testArray[0];
for (let i = 1; i < testArrayLength; ++i) {
  if (testArray[i] > max) {
    max = testArray[i];
  }
}
2 không chỉ chuyển những người đó là tốt.

Đã trả lời ngày 27 tháng 7 năm 2015 lúc 1:00Jul 27, 2015 at 1:00

7

Các phương thức thay thế


function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
8 và
function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
7 là những phương pháp tuyệt vời để có được vật phẩm tối thiểu và tối đa ra khỏi bộ sưu tập các mặt hàng, tuy nhiên điều quan trọng là phải biết về một số lỗ sâu răng có thể đi kèm với nó.

Sử dụng chúng với một mảng chứa số lượng lớn các mục (nhiều hơn ~ 10⁷ các mục, phụ thuộc vào trình duyệt của người dùng) rất có thể sẽ bị sập và đưa ra thông báo lỗi sau:crash and give the following error message:

var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
3

Rangeerror chưa được thực hiện: vượt quá kích thước ngăn xếp cuộc gọi tối đa

Cập nhật trình duyệt mới nhất có thể trả về

function getMaxOfArray(numArray) {
    return Math.max.apply(null, numArray);
}
3 thay thế. Đó có thể là một cách tốt hơn để xử lý các lỗi, tuy nhiên nó chưa giải quyết được vấn đề.
Latest browsers might return
function getMaxOfArray(numArray) {
    return Math.max.apply(null, numArray);
}
3 instead. That might be a better way to handle errors, however it doesn't solve the problem just yet.

Thay vào đó, hãy xem xét sử dụng một cái gì đó như vậy:

var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
4

Hoặc với thời gian chạy tốt hơn:

var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
5

Hoặc để có được cả phút và tối đa:

var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
6

Hoặc với thời gian chạy tốt hơn*:

var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
7

* Được thử nghiệm với 1.000.000 mục: Chỉ để tham khảo, thời gian chạy hàm đầu tiên (trên máy của tôi) là 15,84ms so với hàm thứ 2 chỉ với 4,32ms.
Just for a reference, the 1st function run-time (on my machine) was 15.84ms vs 2nd function with only 4.32ms.

Đã trả lời ngày 2 tháng 10 năm 2018 lúc 17:34Oct 2, 2018 at 17:34

Lior Elromlior ElromLior Elrom

18.7K16 Huy hiệu vàng77 Huy hiệu bạc92 Huy hiệu Đồng16 gold badges77 silver badges92 bronze badges

3

Hai cách ngắn hơn và dễ dàng:

var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
8

Cách 1::

var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
9

Cách 2::

var min = Math.min( ...arr ),
    max = Math.max( ...arr );
0

Đã trả lời ngày 18 tháng 5 năm 2018 lúc 1:37May 18, 2018 at 1:37

3

function getMaxOfArray(numArray) {
    return Math.max.apply(null, numArray);
}
4 thường được sử dụng khi ý định là gọi hàm variadic với danh sách các giá trị đối số, ví dụ:

Hàm

function getMaxOfArray(numArray) {
    return Math.max.apply(null, numArray);
}
5 trả về số không hoặc nhiều số lớn nhất.

var min = Math.min( ...arr ),
    max = Math.max( ...arr );
1

Phương pháp

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (Number(arr[len]) < min) {
      min = Number(arr[len]);
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (Number(arr[len]) > max) {
      max = Number(arr[len]);
    }
  }
  return max;
};
5 không cho phép bạn vượt qua trong một mảng. Nếu bạn có một danh sách các giá trị mà bạn cần để có được lớn nhất, bạn thường gọi hàm này bằng hàm.prototype.apply (), ví dụ:

var min = Math.min( ...arr ),
    max = Math.max( ...arr );
2

Tuy nhiên, kể từ ECMAScript 6, bạn có thể sử dụng toán tử lây lan:ECMAScript 6 you can use the spread operator:

Toán tử lây lan cho phép một biểu thức được mở rộng ở những nơi mà nhiều đối số (cho các cuộc gọi chức năng) hoặc nhiều phần tử (đối với các chữ cái) được dự kiến.

Sử dụng toán tử lây lan, ở trên có thể được viết lại như vậy:

var min = Math.min( ...arr ),
    max = Math.max( ...arr );
3

Khi gọi một hàm bằng toán tử Variadic, bạn thậm chí có thể thêm các giá trị bổ sung, ví dụ:

var min = Math.min( ...arr ),
    max = Math.max( ...arr );
4

Bonus:

Toán tử lan truyền cho phép bạn sử dụng cú pháp theo nghĩa đen của mảng để tạo các mảng mới trong các tình huống trong ES5 bạn sẽ cần phải quay lại mã bắt buộc, sử dụng kết hợp

function getMaxOfArray(numArray) {
    return Math.max.apply(null, numArray);
}
7,
function getMaxOfArray(numArray) {
    return Math.max.apply(null, numArray);
}
8, v.v.

var min = Math.min( ...arr ),
    max = Math.max( ...arr );
5

Đã trả lời ngày 18 tháng 12 năm 2014 lúc 1:38Dec 18, 2014 at 1:38

GajusgajusGajus

65.4K68 Huy hiệu vàng264 Huy hiệu bạc425 Huy hiệu Đồng68 gold badges264 silver badges425 bronze badges

1

Bạn làm điều đó bằng cách mở rộng loại mảng:

var min = Math.min( ...arr ),
    max = Math.max( ...arr );
6

Được tăng cường từ đây (bởi John Resig)

Đã trả lời ngày 3 tháng 11 năm 2009 lúc 18:35Nov 3, 2009 at 18:35

Brettkellybrettkellybrettkelly

27.1k8 Huy hiệu vàng53 Huy hiệu bạc70 Huy hiệu đồng8 gold badges53 silver badges70 bronze badges

Một giải pháp đơn giản để tìm giá trị tối thiểu trên

function getMaxOfArray(numArray) {
    return Math.max.apply(null, numArray);
}
9 của các phần tử là sử dụng hàm nguyên mẫu
function getMaxOfArray(numArray) {
    return Math.max.apply(null, numArray);
}
9
// For regular arrays:
var max = Math.max(...arrayOfNumbers);

// For arrays with tens of thousands of items:
let max = testArray[0];
for (let i = 1; i < testArrayLength; ++i) {
  if (testArray[i] > max) {
    max = testArray[i];
  }
}
2:

var min = Math.min( ...arr ),
    max = Math.max( ...arr );
7

hoặc sử dụng hàm Math.min () tích hợp của JavaScript (cảm ơn @TenFlex):

var min = Math.min( ...arr ),
    max = Math.max( ...arr );
8

Điều này đặt

var arr = [1, 2, 3];
var max = Math.max(...arr);
2 thành
var arr = [1, 2, 3];
var max = Math.max(...arr);
3, và sau đó kiểm tra xem
var arr = [1, 2, 3];
var max = Math.max(...arr);
4 liệu nó có hoàn toàn thấp hơn so với
var arr = [1, 2, 3];
var max = Math.max(...arr);
2 hiện tại hay không. Nếu
var arr = [1, 2, 3];
var max = Math.max(...arr);
6 thì
var arr = [1, 2, 3];
var max = Math.max(...arr);
2 được cập nhật lên
var arr = [1, 2, 3];
var max = Math.max(...arr);
8. Khi tất cả các phần tử mảng đã được xử lý,
var arr = [1, 2, 3];
var max = Math.max(...arr);
2 được trả lại do kết quả.

Chỉnh sửa: Bao gồm vị trí của giá trị tối thiểu:: Include position of minimum value:

var min = Math.min( ...arr ),
    max = Math.max( ...arr );
9

Đã trả lời ngày 29 tháng 10 năm 2017 lúc 11:26Oct 29, 2017 at 11:26

2

Đối với một giải pháp hiện đại, ngắn gọn, người ta có thể thực hiện hoạt động

// For regular arrays:
var max = Math.max(...arrayOfNumbers);

// For arrays with tens of thousands of items:
let max = testArray[0];
for (let i = 1; i < testArrayLength; ++i) {
  if (testArray[i] > max) {
    max = testArray[i];
  }
}
2 trên mảng, theo dõi các giá trị tối thiểu và tối đa hiện tại, do đó mảng chỉ được lặp lại một lần (là tối ưu). Việc chuyển nhượng phá hủy được sử dụng ở đây cho sự cô đọng.

Math.max(...array)  // The same with "min" => Math.min(...array)
0

Để chỉ tìm thấy mức tối thiểu hoặc tối đa, chúng ta có thể sử dụng thực hiện hoạt động giảm theo cùng một cách, nhưng chúng ta chỉ cần theo dõi giá trị tối ưu trước đó. Phương pháp này tốt hơn so với sử dụng

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
9 vì nó sẽ không gây ra lỗi khi mảng quá lớn cho ngăn xếp.

Math.max(...array)  // The same with "min" => Math.min(...array)
1

Đã trả lời ngày 20 tháng 8 năm 2020 lúc 22:47Aug 20, 2020 at 22:47

UnitigatedUnmitigatedUnmitigated

50.3k7 Huy hiệu vàng 50 Huy hiệu bạc68 Huy hiệu Đồng7 gold badges50 silver badges68 bronze badges

Những người khác đã đưa ra một số giải pháp trong đó họ tăng cường

var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
02. Tất cả những gì tôi muốn trong câu trả lời này là làm rõ liệu đó là
var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
03 hay
var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
04. Vậy bối cảnh nào nên được sử dụng,
var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
05 hoặc
var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
06?So what context should be used,
var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
05 or
var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
06?

Khi chuyển

var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
06 làm bối cảnh cho
function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
9, thì bối cảnh sẽ mặc định cho đối tượng toàn cầu (đối tượng
var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
09 trong trường hợp trình duyệt). Vượt qua đối tượng
var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
05 như bối cảnh sẽ là giải pháp chính xác, nhưng nó cũng sẽ không bị tổn thương khi vượt qua
var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
06. Đây là một ví dụ khi
var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
06 có thể gây rắc rối, khi trang trí chức năng
function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
7:

Math.max(...array)  // The same with "min" => Math.min(...array)
2

Trên đây sẽ ném một ngoại lệ vì

var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
14 sẽ được đánh giá là
var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
15, đó là
var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
16. Nếu chúng tôi thay thế
var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
06 bằng
var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
05, mọi thứ sẽ hoạt động như mong đợi và chuỗi "foo" sẽ được in lên màn hình (tôi đã thử nghiệm điều này bằng Mozilla Rhino).

Bạn có thể cho rằng không ai đã trang trí

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
7 vì vậy, vượt qua
var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
06 sẽ hoạt động mà không gặp vấn đề gì.

Đã trả lời ngày 3 tháng 11 năm 2009 lúc 18:39Nov 3, 2009 at 18:39

Ionuț G. Stanionuț G. StanIonuț G. Stan

173K18 Huy hiệu vàng187 Huy hiệu bạc199 Huy hiệu đồng18 gold badges187 silver badges199 bronze badges

2

Một cách nữa để làm điều đó:

Math.max(...array)  // The same with "min" => Math.min(...array)
3

Cách sử dụng:

Math.max(...array)  // The same with "min" => Math.min(...array)
4

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

gion_13

40.8k10 Huy hiệu vàng97 Huy hiệu bạc107 Huy hiệu đồng10 gold badges97 silver badges107 bronze badges

Đã trả lời ngày 26 tháng 9 năm 2012 lúc 18:43Sep 26, 2012 at 18:43

SBRSBRsbr

4.6075 Huy hiệu vàng41 Huy hiệu bạc46 Huy hiệu đồng5 gold badges41 silver badges46 bronze badges

2

Tôi ngạc nhiên khi không đề cập đến chức năng giảm.

Math.max(...array)  // The same with "min" => Math.min(...array)
5

2

Điều này có thể phù hợp với mục đích của bạn.

Math.max(...array)  // The same with "min" => Math.min(...array)
6

Đã trả lời ngày 3 tháng 11 năm 2009 lúc 18:21Nov 3, 2009 at 18:21

ChaopandionchaospandionChaosPandion

76.4K18 Huy hiệu vàng117 Huy hiệu bạc155 Huy hiệu đồng18 gold badges117 silver badges155 bronze badges

5

Đặt mảng = [267, 306, 108] để dài nhất = math.max (... mảng);

Đã trả lời ngày 3 tháng 10 năm 2020 lúc 15:10Oct 3, 2020 at 15:10

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

Trilok Singhtrilok SinghTrilok Singh

1.07911 Huy hiệu bạc8 Huy hiệu đồng11 silver badges8 bronze badges

1

Tôi nghĩ rằng tôi sẽ chia sẻ giải pháp đơn giản và dễ hiểu của mình.

Cho tối thiểu:

Math.max(...array)  // The same with "min" => Math.min(...array)
7

Và cho tối đa:

Math.max(...array)  // The same with "min" => Math.min(...array)
8

Đã trả lời ngày 13 tháng 10 năm 2016 lúc 16:37Oct 13, 2016 at 16:37

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

IonStionutIonut

10,8K4 Huy hiệu vàng44 Huy hiệu bạc69 Huy hiệu đồng4 gold badges44 silver badges69 bronze badges

9

Đối với các mảng lớn (~ 10⁷ phần tử),

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
8 và
function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
7 mang đến một rangeRror (vượt quá kích thước ngăn xếp cuộc gọi tối đa) trong Node.js.

Đối với các mảng lớn, một giải pháp nhanh và bẩn là:

Math.max(...array)  // The same with "min" => Math.min(...array)
9

Đã trả lời ngày 24 tháng 1 năm 2012 lúc 12:43Jan 24, 2012 at 12:43

PeterpeterPeter

5.0685 Huy hiệu vàng28 Huy hiệu bạc38 Huy hiệu đồng5 gold badges28 silver badges38 bronze badges

Đối với một mảng chứa các đối tượng thay vì số:

function arrayMin(arr) {
  return arr.reduce(function (p, v) {
    return ( p < v ? p : v );
  });
}

function arrayMax(arr) {
  return arr.reduce(function (p, v) {
    return ( p > v ? p : v );
  });
}
0

Bạn có thể sử dụng

// For regular arrays:
var max = Math.max(...arrayOfNumbers);

// For arrays with tens of thousands of items:
let max = testArray[0];
for (let i = 1; i < testArrayLength; ++i) {
  if (testArray[i] > max) {
    max = testArray[i];
  }
}
2 để lấy phần tử có giá trị nhỏ nhất (tối thiểu)

function arrayMin(arr) {
  return arr.reduce(function (p, v) {
    return ( p < v ? p : v );
  });
}

function arrayMax(arr) {
  return arr.reduce(function (p, v) {
    return ( p > v ? p : v );
  });
}
1

hoặc giá trị lớn nhất (tối đa)

function arrayMin(arr) {
  return arr.reduce(function (p, v) {
    return ( p < v ? p : v );
  });
}

function arrayMax(arr) {
  return arr.reduce(function (p, v) {
    return ( p > v ? p : v );
  });
}
2

Đã trả lời ngày 6 tháng 8 năm 2020 lúc 12:17Aug 6, 2020 at 12:17

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

Laktaklaktaklaktak

54.5K17 Huy hiệu vàng128 Huy hiệu bạc161 Huy hiệu đồng17 gold badges128 silver badges161 bronze badges

Bên cạnh việc sử dụng hàm toán tối đa và tối thiểu, một hàm khác để sử dụng là hàm tích hợp của sort (): ở đây chúng ta đi

function arrayMin(arr) {
  return arr.reduce(function (p, v) {
    return ( p < v ? p : v );
  });
}

function arrayMax(arr) {
  return arr.reduce(function (p, v) {
    return ( p > v ? p : v );
  });
}
3

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

Đã trả lời ngày 14 tháng 2 năm 2020 lúc 15:29Feb 14, 2020 at 15:29

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

1

Tôi có cùng một vấn đề, tôi cần phải có được các giá trị tối thiểu và tối đa của một mảng và, thật ngạc nhiên, không có chức năng tích hợp nào cho các mảng. Sau khi đọc rất nhiều, tôi đã quyết định tự mình kiểm tra các giải pháp "Top 3":

  1. Giải pháp riêng biệt: A cho vòng lặp để kiểm tra mọi phần tử của mảng so với giá trị tối đa và/hoặc tối thiểu hiện tại;
  2. Áp dụng giải pháp: Gửi mảng đến Math.Max ​​và/hoặc Math.min Chức năng nội bộ bằng cách sử dụng Áp dụng (NULL, Mảng);
  3. Giảm giải pháp: Khung lại kiểm tra đối với mọi phần tử của mảng bằng cách sử dụng giảm (hàm).

Mã kiểm tra là đây:

function arrayMin(arr) {
  return arr.reduce(function (p, v) {
    return ( p < v ? p : v );
  });
}

function arrayMax(arr) {
  return arr.reduce(function (p, v) {
    return ( p > v ? p : v );
  });
}
4

Mảng A được lấp đầy với 100.000 số nguyên ngẫu nhiên, mỗi hàm được thực hiện 10.000 lần trên Mozilla Firefox 28.0 trên máy tính để bàn Intel Pentium 4 2.99GHz với Windows Vista. Thời gian tính bằng vài giây, được truy xuất theo hàm hiệu suất.Không (). Kết quả là những điều này, với 3 chữ số phân đoạn và độ lệch chuẩn:

  1. Giải pháp rời rạc: trung bình = 0,161S, SD = 0,078
  2. Áp dụng giải pháp: mean = 3,571s, sd = 0,487
  3. Giảm giải pháp: trung bình = 0,350s, SD = 0,044

Dung dịch giảm chậm hơn 117% so với dung dịch riêng biệt. Giải pháp áp dụng là tồi tệ hơn, chậm hơn 2.118% so với giải pháp riêng biệt. Bên cạnh đó, như Peter quan sát, nó không hoạt động cho các mảng lớn (khoảng hơn 1.000.000 yếu tố).

Ngoài ra, để hoàn thành các bài kiểm tra, tôi đã kiểm tra mã riêng biệt mở rộng này:

function arrayMin(arr) {
  return arr.reduce(function (p, v) {
    return ( p < v ? p : v );
  });
}

function arrayMax(arr) {
  return arr.reduce(function (p, v) {
    return ( p > v ? p : v );
  });
}
5

Thời gian: mean = 0,218S, SD = 0,094

Vì vậy, nó chậm hơn 35% so với giải pháp rời rạc đơn giản, nhưng nó lấy cả giá trị tối đa và tối thiểu cùng một lúc (bất kỳ giải pháp nào khác sẽ mất ít nhất hai lần để lấy chúng). Khi OP cần cả hai giá trị, giải pháp riêng biệt sẽ là lựa chọn tốt nhất (ngay cả khi hai hàm riêng biệt, một để tính toán tối đa và một hàm khác để tính toán tối thiểu, chúng sẽ vượt trội so với tốt nhất thứ hai, giải pháp giảm).

Đã trả lời ngày 2 tháng 4 năm 2014 lúc 17:46Apr 2, 2014 at 17:46

CyberknightCyberknightCyberknight

1582 Huy hiệu bạc6 Huy hiệu Đồng2 silver badges6 bronze badges

Lặp lại, theo dõi khi bạn đi.

function arrayMin(arr) {
  return arr.reduce(function (p, v) {
    return ( p < v ? p : v );
  });
}

function arrayMax(arr) {
  return arr.reduce(function (p, v) {
    return ( p > v ? p : v );
  });
}
6

Điều này sẽ để lại Min/Max Null nếu không có phần tử trong mảng. Sẽ đặt tối thiểu và tối đa trong một lần vượt qua nếu mảng có bất kỳ phần tử nào.

Bạn cũng có thể mở rộng mảng bằng phương pháp

var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);
24 bằng cách sử dụng các phương pháp trên để cho phép tái sử dụng và cải thiện khả năng đọc. Xem Fiddle hoạt động tại http://jsfiddle.net/9c9fu/

function arrayMin(arr) {
  return arr.reduce(function (p, v) {
    return ( p < v ? p : v );
  });
}

function arrayMax(arr) {
  return arr.reduce(function (p, v) {
    return ( p > v ? p : v );
  });
}
7

Được dùng như

function arrayMin(arr) {
  return arr.reduce(function (p, v) {
    return ( p < v ? p : v );
  });
}

function arrayMax(arr) {
  return arr.reduce(function (p, v) {
    return ( p > v ? p : v );
  });
}
8

Đã trả lời ngày 3 tháng 11 năm 2009 lúc 18:23Nov 3, 2009 at 18:23

TVanfossontvanfossontvanfosson

516K97 Huy hiệu vàng696 Huy hiệu bạc794 Huy hiệu Đồng97 gold badges696 silver badges794 bronze badges

1

Bạn có thể sử dụng chức năng sau ở bất cứ đâu trong dự án của mình:

function arrayMin(arr) {
  return arr.reduce(function (p, v) {
    return ( p < v ? p : v );
  });
}

function arrayMax(arr) {
  return arr.reduce(function (p, v) {
    return ( p > v ? p : v );
  });
}
9

Và sau đó bạn có thể gọi các chức năng vượt qua mảng:

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
0

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

Falsarella

12.2k9 Huy hiệu vàng70 Huy hiệu bạc114 Huy hiệu đồng9 gold badges70 silver badges114 bronze badges

Đã trả lời ngày 26 tháng 8 năm 2014 lúc 16:57Aug 26, 2014 at 16:57

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

Mã sau đây phù hợp với tôi:

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
1

Gogol

3,0034 huy hiệu vàng27 Huy hiệu bạc54 Huy hiệu đồng4 gold badges27 silver badges54 bronze badges

Đã trả lời ngày 26 tháng 5 năm 2017 lúc 12:40May 26, 2017 at 12:40

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

0

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
2

Cung cấp cho bạn giá trị tối đa trong một mảng số.

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
3

Cung cấp cho bạn giá trị tối thiểu trong một mảng số.

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
4

Đã trả lời ngày 20 tháng 6 năm 2020 lúc 20:33Jun 20, 2020 at 20:33

Adam Belekoadam BelekoAdam Beleko

5095 Huy hiệu bạc13 Huy hiệu Đồng5 silver badges13 bronze badges

Đặt ARR = [20,8,29,76,7,21,9] Math.Max.Apply (Math, ARR);// 76
Math.max.apply( Math, arr ); // 76

Đã trả lời ngày 28 tháng 10 năm 2020 lúc 21:53Oct 28, 2020 at 21:53

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

Công cụ đơn giản, thực sự.

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
5

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

Falsarella

12.2k9 Huy hiệu vàng70 Huy hiệu bạc114 Huy hiệu đồng9 gold badges70 silver badges114 bronze badges

Đã trả lời ngày 23 tháng 9 năm 2014 lúc 7:48Sep 23, 2014 at 7:48

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

BrianbrianBrian

3.6231 Huy hiệu vàng22 Huy hiệu bạc33 Huy hiệu đồng1 gold badge22 silver badges33 bronze badges

Đây là một cách để có được giá trị tối đa từ một mảng các đối tượng.Tạo một bản sao (có lát), sau đó sắp xếp bản sao theo thứ tự giảm dần và lấy mục đầu tiên.

function arrayMin(arr) {
  var len = arr.length, min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
};

function arrayMax(arr) {
  var len = arr.length, max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
};
6

Hướng dẫn how do you find min and max values in an array in javascript? - làm cách nào để bạn tìm thấy các giá trị tối thiểu và tối đa trong một mảng trong javascript?

Falsarella

12.2k9 Huy hiệu vàng70 Huy hiệu bạc114 Huy hiệu đồng9 gold badges70 silver badges114 bronze badges

Đã trả lời ngày 23 tháng 9 năm 2014 lúc 7:48Jan 9, 2014 at 18:46

BrianbrianBen

3.6231 Huy hiệu vàng22 Huy hiệu bạc33 Huy hiệu đồng9 silver badges8 bronze badges