Tôi đang cố gắng viết một thuật toán tìm thấy và giá trị nhỏ nhất và lớn nhất trong một mảng, và nhỏ thứ hai và nhỏ thứ hai.
Tôi đã thử với những điều sau:
numbers = [2, 4, 9, 2, 0, 16, 24]
var largest = numbers[0];
var smallest = numbers[0];
for [var i = 1; i < numbers.length; i++] {
if [numbers[i] > largest] {
largest = numbers[i];
} else if [numbers[i] < smallest] {
smallest = numbers[i];
}
console.log[largest];
console.log[smallest];
}
Điều này dường như không hoạt động và chỉ in ra mảng ... Tôi đang làm gì sai?
Penny Liu
13.1k5 Huy hiệu vàng71 Huy hiệu bạc88 Huy hiệu đồng5 gold badges71 silver badges88 bronze badges
Đã hỏi ngày 7 tháng 7 năm 2016 lúc 22:19Jul 7, 2016 at 22:19
5
Cách dễ nhất để làm điều này là sắp xếp mảng, sau đó trả lại hai yếu tố đầu tiên và hai yếu tố cuối cùng.
Sử dụng
var numbers = [2, 4, 9, 2, 0, 16, 24];
var sorted = numbers.slice[].sort[function[a, b] {
return a - b;
}];
var smallest = sorted[0],
secondSmallest = sorted[1],
secondLargest = sorted[sorted.length - 2],
largest = sorted[sorted.length - 1];
console.log['Smallest: ' + smallest];
console.log['Second Smallest: ' + secondSmallest];
console.log['Second Largest: ' + secondLargest];
console.log['Largest: ' + largest];
4 ngăn không cho mảng được sắp xếp:var numbers = [2, 4, 9, 2, 0, 16, 24];
var sorted = numbers.slice[].sort[function[a, b] {
return a - b;
}];
var smallest = sorted[0],
secondSmallest = sorted[1],
secondLargest = sorted[sorted.length - 2],
largest = sorted[sorted.length - 1];
console.log['Smallest: ' + smallest];
console.log['Second Smallest: ' + secondSmallest];
console.log['Second Largest: ' + secondLargest];
console.log['Largest: ' + largest];
Đã trả lời ngày 7 tháng 7 năm 2016 lúc 22:29Jul 7, 2016 at 22:29
Rick Hitchcockrick HitchcockRick Hitchcock
34,5K5 Huy hiệu vàng46 Huy hiệu bạc76 Huy hiệu đồng5 gold badges46 silver badges76 bronze badges
Di chuyển bảng điều khiển của bạn.
Đã trả lời ngày 7 tháng 7 năm 2016 lúc 22:22Jul 7, 2016 at 22:22
Bạn có thể sử dụng toán tử lây lan để chuyển từng phần tử mảng làm đối số cho
var numbers = [2, 4, 9, 2, 0, 16, 24];
var sorted = numbers.slice[].sort[function[a, b] {
return a - b;
}];
var smallest = sorted[0],
secondSmallest = sorted[1],
secondLargest = sorted[sorted.length - 2],
largest = sorted[sorted.length - 1];
console.log['Smallest: ' + smallest];
console.log['Second Smallest: ' + secondSmallest];
console.log['Second Largest: ' + secondLargest];
console.log['Largest: ' + largest];
5 hoặc var numbers = [2, 4, 9, 2, 0, 16, 24];
var sorted = numbers.slice[].sort[function[a, b] {
return a - b;
}];
var smallest = sorted[0],
secondSmallest = sorted[1],
secondLargest = sorted[sorted.length - 2],
largest = sorted[sorted.length - 1];
console.log['Smallest: ' + smallest];
console.log['Second Smallest: ' + secondSmallest];
console.log['Second Largest: ' + secondLargest];
console.log['Largest: ' + largest];
6.Sử dụng phương pháp này, bạn có thể tìm thấy số nhỏ nhất và lớn nhất trong một mảng:
const numbers = [2, 4, 9, 2, 0, 16, 24];
const smallest_number = Math.min[...numbers];
const largest_number = Math.max[...numbers];
console.log['Smallest Value:', smallest_number]; // Smallest Value: 0
console.log['Largest Value:', largest_number]; // Largest Value: 24
Đã trả lời ngày 18 tháng 11 năm 2018 lúc 1:09Nov 18, 2018 at 1:09
Grant Millergrant MillerGrant Miller
25.7K16 Huy hiệu vàng139 Huy hiệu bạc156 Huy hiệu đồng16 gold badges139 silver badges156 bronze badges
const numbers = [2, 4, 9, 2, 0, 16, 24];
//we can use reduce to find the largest and smallest number
const largest = numbers.reduce[[previousValue, currentValue] =>
previousValue > currentValue ? previousValue : currentValue
];
const smallest = numbers.reduce[[previousValue, currentValue] =>
previousValue < currentValue ? previousValue : currentValue
];
Đã trả lời ngày 22 tháng 7 năm 2020 lúc 4:23Jul 22, 2020 at 4:23
1
Như Roatin Marth [do ông Llama biên soạn] đã nói trong bài đăng này: //stackoverflow.com/a/6102340/6074388,
Bạn có thể làm cho các mảng sử dụng math.min và math.max như bên dưới
Array.prototype.max = function[] {
return Math.max.apply[null, this];
};
Array.prototype.min = function[] {
return Math.min.apply[null, this];
};
Nếu điều này gây ra bất kỳ vấn đề nào bạn cũng có thể sử dụng
var min = Math.min.apply[null, largest],
max = Math.max.apply[null, largest];
var min = Math.min.apply[null, numbers],
max = Math.max.apply[null, numbers];
Nó sẽ không giúp tìm ra số lượng nhỏ thứ hai và lớn thứ hai, nhưng tôi thấy đây là một giải pháp đơn giản hơn để tìm các số lớn nhất và nhỏ nhất.
Đã trả lời ngày 7 tháng 7 năm 2016 lúc 22:32Jul 7, 2016 at 22:32
hb22hb22hb22
3831 Huy hiệu vàng2 Huy hiệu bạc14 Huy hiệu đồng1 gold badge2 silver badges14 bronze badges
numbers = [2, 4, 9, 2, 0, 16, 24]
var largest = numbers[0];
var smallest = numbers[0];
for [var i = 0; i < numbers.length; i++]{
var temp = numbers[i];
if [temp > largest]
{
largest = numbers[i];
}
if [temp < smallest]
{
smallest = numbers[i];
}
}
console.log[largest];
console.log[smallest];
Đã trả lời ngày 18 tháng 2 năm 2019 lúc 8:04Feb 18, 2019 at 8:04
var numbers = [2, 4, 9, 2, 0, 16, 24];
var largest = -Infinity;
var smallest = Infinity;
for [var i = 0; i < numbers.length; i++] {
if [numbers[i] > largest] {
largest = numbers[i];
}
}
for [var i = 0; i < numbers.length; i++] {
if [numbers[i] < smallest] {
smallest = numbers[i];
}
}
console.log[largest];
console.log[smallest];
Đã trả lời ngày 10 tháng 7 năm 2019 lúc 23:43Jul 10, 2019 at 23:43
1
Bạn có thể sử dụng chức năng giảm cho việc này!
var numbers = [45, 4, 9, 16, 25, 100, 43];
var max = numbers.reduce[[total, value, index, array] => {
if[index === 0] return array[0];
return total > value ? total : value;
}];
console.log[max];
var min = numbers.reduce[[total, value, index, array] => {
if[index === 0] return array[0];
return total < value ? total : value;
}];
console.log[min];
Bạn có thể tìm hiểu làm thế nào chức năng giảm hoạt động ở đây. Nó thực sự hữu ích khi bạn phải lấy kết quả từ tất cả các giá trị của một mảng.
Tôi cũng đang sử dụng toán tử ternary để có ít mã hơn.
Đã trả lời ngày 22 tháng 7 năm 2020 lúc 8:08Jul 22, 2020 at 8:08
let arr = [1,2,3,4,5]
const bigandsmallNum = function[]{
const smallNum = Math.min[...arr]
const largeNum = Math.max[...arr]
console.log[smallNum,largeNum]
}
console.log[bigandsmallNum[]]
Đã trả lời ngày 28 tháng 5 năm 2021 lúc 4:39May 28, 2021 at 4:39
Bạn có thể sử dụng giảm để trả về một đối tượng với lớn nhất và nhỏ nhất:
var numbers = [2, 4, 9, 2, 0, 16, 24];
var sorted = numbers.slice[].sort[function[a, b] {
return a - b;
}];
var smallest = sorted[0],
secondSmallest = sorted[1],
secondLargest = sorted[sorted.length - 2],
largest = sorted[sorted.length - 1];
console.log['Smallest: ' + smallest];
console.log['Second Smallest: ' + secondSmallest];
console.log['Second Largest: ' + secondLargest];
console.log['Largest: ' + largest];
0Đã trả lời ngày 2 tháng 12 năm 2021 lúc 20:40Dec 2, 2021 at 20:40
const x = [1,2,3,4];
const y = math.min [... x];
const z = math.max [... x]
Đã trả lời ngày 12 tháng 4 lúc 0:38Apr 12 at 0:38
Làm thế nào bạn có thể nhận được số lớn nhất và thứ hai trong Arrayi hy vọng điều này sẽ hữu ích cho mọi người cảm ơn I hope this would be helpful for everyone thanks
var numbers = [2, 4, 9, 2, 0, 16, 24];
var sorted = numbers.slice[].sort[function[a, b] {
return a - b;
}];
var smallest = sorted[0],
secondSmallest = sorted[1],
secondLargest = sorted[sorted.length - 2],
largest = sorted[sorted.length - 1];
console.log['Smallest: ' + smallest];
console.log['Second Smallest: ' + secondSmallest];
console.log['Second Largest: ' + secondLargest];
console.log['Largest: ' + largest];
1var numbers = [2, 4, 9, 2, 0, 16, 24];
var sorted = numbers.slice[].sort[function[a, b] {
return a - b;
}];
var smallest = sorted[0],
secondSmallest = sorted[1],
secondLargest = sorted[sorted.length - 2],
largest = sorted[sorted.length - 1];
console.log['Smallest: ' + smallest];
console.log['Second Smallest: ' + secondSmallest];
console.log['Second Largest: ' + secondLargest];
console.log['Largest: ' + largest];
2
Đã trả lời ngày 22 tháng 7 lúc 19:26Jul 22 at 19:26
Ahmad Farazahmad FarazAhmad Faraz
1.0501 huy hiệu vàng3 Huy hiệu bạc9 Huy hiệu đồng1 gold badge3 silver badges9 bronze badges
var numbers = [2, 4, 9, 2, 0, 16, 24];
var sorted = numbers.slice[].sort[function[a, b] {
return a - b;
}];
var smallest = sorted[0],
secondSmallest = sorted[1],
secondLargest = sorted[sorted.length - 2],
largest = sorted[sorted.length - 1];
console.log['Smallest: ' + smallest];
console.log['Second Smallest: ' + secondSmallest];
console.log['Second Largest: ' + secondLargest];
console.log['Largest: ' + largest];
3Đã trả lời ngày 25 tháng 3 lúc 4:59Mar 25 at 4:59
1