Hướng dẫn find the average of largest and smallest numbers in an unsorted integer array javascript - tìm giá trị trung bình của các số lớn nhất và nhỏ nhất trong một mảng số nguyên chưa sắp xếp javascript

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một mảng các số. Chức năng, trong thời gian tuyến tính và không gian không đổi, tìm thấy các số lớn nhất và nhỏ nhất tồn tại trong mảng. Hàm sẽ trả về một đối tượng chứa các số tối đa và tối đa.

Thí dụ

Sau đây là mã -

const arr = [112, 24, 31, 44, 101, 203, 33, 56];
const findMaxMin = [arr] => {
   let max = arr[0];
   let min = arr[0];
   for[let i = 0; i < arr.length; i++] {
      if[arr[i] > max] {
         max = arr[i];
      }
      else if [arr[i] < min] {
         min = arr[i];
      }
   };
   return {
      min, max
   };
};
console.log[findMaxMin[arr]];

Đầu ra

Sau đây là đầu ra trên bảng điều khiển -

{ min: 24, max: 203 }

Cập nhật vào ngày 10 tháng 12 năm 2020 08:04:52

  • Câu hỏi và câu trả lời liên quan
  • Tìm số không lặp lại lớn nhất trong một mảng trong JavaScript
  • Tìm sự khác biệt của số lớn nhất và số nhỏ nhất trong một mảng mà không cần sắp xếp nó trong JavaScript
  • Yếu tố nhỏ nhất/lớn nhất trong mảng chưa được phân loại trong c ++
  • Kth nhỏ nhất/lớn nhất trong một phạm vi nhỏ chưa phân loại trong C ++
  • Tìm số phù hợp nhỏ nhất trong JavaScript
  • JavaScript đệ quy Tìm số nhỏ nhất?
  • Tìm kiếm sự khác biệt của chữ số lớn nhất và nhỏ nhất trong một số - JavaScript
  • Tìm tổng cặp lớn nhất trong một mảng chưa được phân loại trong C ++
  • Tìm mảng sản phẩm ba lớn nhất trong JavaScript
  • Tìm số nhỏ nhất bằng cách sử dụng đệ quy trong JavaScript
  • Tìm hệ số chính lớn nhất của một số trong JavaScript
  • Tìm số nguyên dương nhỏ nhất không có trong một mảng trong JavaScript
  • Chương trình Java để tìm thấy lớn nhất, nhỏ nhất, lớn thứ hai, nhỏ thứ hai nhỏ nhất trong một mảng
  • Tìm kiếm không giống như số trong một mảng - JavaScript
  • Sự khác biệt giữa các số nguyên tố lớn nhất và nhỏ nhất trong một mảng trong java

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.3k5 Huy hiệu vàng71 Huy hiệu bạc90 Huy hiệu Đồng5 gold badges71 silver badges90 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

{ min: 24, max: 203 }
6 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,6K5 Huy hiệu vàng46 Huy hiệu bạc77 Huy hiệu đồng5 gold badges46 silver badges77 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

{ min: 24, max: 203 }
7 hoặc
{ min: 24, max: 203 }
8.

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.9K16 Huy hiệu vàng142 Huy hiệu bạc158 Huy hiệu đồng16 gold badges142 silver badges158 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!

{ min: 24, max: 203 }
0

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

{ min: 24, max: 203 }
1

Đã 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:

{ min: 24, max: 203 }
2

Đã 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

{ min: 24, max: 203 }
3

{ min: 24, max: 203 }
4

Đã trả lời ngày 22 tháng 7 lúc 19:26Jul 22 at 19:26

Ahmad Farazahmad FarazAhmad Faraz

1.0631 Huy hiệu vàng3 Huy hiệu bạc10 Huy hiệu đồng1 gold badge3 silver badges10 bronze badges

{ min: 24, max: 203 }
5

Đã trả lời ngày 25 tháng 3 lúc 4:59Mar 25 at 4:59

1

Bài Viết Liên Quan

Chủ Đề