আমি কীভাবে জাভাস্ক্রিপ্ট অ্যারেতে থাকা বৃহত্তম সংখ্যাটি খুঁজে পেতে পারি?


206

আমার একটি সাধারণ জাভাস্ক্রিপ্ট অ্যারে অবজেক্ট রয়েছে যাতে কয়েকটি সংখ্যা রয়েছে।

[267, 306, 108]

এমন কোন ফাংশন রয়েছে যা এই অ্যারেতে সর্বাধিক সংখ্যাটি খুঁজে পাবে?


22
Math.max(...[267, 306, 108]);
জ্যাকসনকর

উত্তর:


315

পুনরায় উদ্ধার করুন:

Array.max = function( array ){
    return Math.max.apply( Math, array );
};

সতর্কতা : যেহেতু কিছু ভিএমগুলিতে সর্বাধিক সংখ্যক যুক্তি সংখ্যা 65535 এর চেয়ে কম , সুতরাং ল্যাপের জন্য একটি ব্যবহার করুন যদি আপনি নিশ্চিত না হন যে অ্যারেটি খুব ছোট।


15
আহ, তবে এখন এটিতে কেবলমাত্র কিছুটা আঁকাবাঁকা ফ্যাশনে মানটির এসও স্টিকার রয়েছে aff
শোগ 9

2
এফডাব্লুআইডাব্লু, যদি পারফরম্যান্স আপনার সমাধানের একটি উপাদান হয় তবে আমি এটি পরীক্ষা করে দেখব যে এটি আপনার নিজের সহজে কোডেড ফাংশনটির সাথে তুলনা করে এটি ভাল সম্পাদন করে। আমরা ধরে নিই যে দেশীয় বাস্তবায়ন দ্রুত হবে; আসলে, applyকলটির দাম খুব সহজেই তা ধুয়ে ফেলতে পারে।
টিজে ক্রাউডার

2
আমার অ্যারের দৈর্ঘ্য প্যারামিটার গণনার সীমা থেকে বড় হলে কী হবে?
lukas.pukenis

3
@ ক্রিসেন্টফ্রেশ এটি অনুসারে: ডেভেলপার.মোজিলা.আর.ইন.ইউএস / ডকস / ওয়েবে / জাভা স্ক্রিপ্ট / রেফারেন্স / it এটি হার্ডকোড করা হয়েছে 5৫৫৩৫। এই অনুসারে: কোড. google.com/p/v8/issues/detail?id = 172 এবং জ্ঞানের দ্বারা যে যুক্তিগুলি স্ট্যাকের দিকে ঠেলে দেওয়া হয় আমরা জানি যে এটি সীমাহীন নয়
lukas.pukenis

9
এছাড়াও, এই পদ্ধতিটি শক্ত নয়। যদি আপনার অ্যারে সর্বাধিক স্ট্যাকের আকারের চেয়ে বড় হয় তবে এটি ব্যর্থ হয়RangeError: Maximum call stack size exceeded.
মার্ক লন্ডিন

197

ম্যাথ.ম্যাক্স কল করতে আপনি প্রয়োগ ফাংশনটি ব্যবহার করতে পারেন :

var array = [267, 306, 108];
var largest = Math.max.apply(Math, array); // 306

কিভাবে এটা কাজ করে?

প্রয়োগ করা ফাংশন একটি অ্যারে হিসাবে প্রদান করা একটি প্রদত্ত প্রসঙ্গ এবং আর্গুমেন্ট, সঙ্গে, অন্য ফাংশন কল করতে ব্যবহৃত হয়। সর্বনিম্ন এবং সর্বোচ্চ ফাংশনগুলি ইনপুট আর্গুমেন্টের একটি স্বেচ্ছাসেবী সংখ্যার নিতে পারে: ম্যাথ.ম্যাক্স (ভাল 1, ভাল 2, ..., ভালএন)

সুতরাং আমরা যদি কল:

Math.min.apply(Math, [1,2,3,4]);

প্রয়োগ ফাংশন কার্যকর হবে:

Math.min(1,2,3,4);

মনে রাখবেন যে প্রথম প্যারামিটার, প্রসঙ্গটি এই ফাংশনগুলির জন্য গুরুত্বপূর্ণ নয় যেহেতু তারা অচল, তারা প্রসঙ্গ হিসাবে যা পাস তা নির্বিশেষে তারা কাজ করবে।


2
হু, আপনি আপনার প্রচুর প্রচেষ্টার সাথে উত্তরগুলি
রেখেছেন

1
দারুণ. তবে আমার অ্যারের দৈর্ঘ্য যদি পরামিতি আকারের সীমা (ফাংশন) ছাড়িয়ে যায়? তখন কি ?
lukas.pukenis

1
আমি এই উত্তরটি অন্যদের চেয়ে ভাল পছন্দ করি কারণ এটি সবকিছু কী করে এবং কেন তা ব্যাখ্যা করে। +1
মার্ভিন

59

নতুন স্প্রেড অপারেটরের সাথে সবচেয়ে সহজ বাক্য গঠন :

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

সূত্র: মজিলা এমডিএন


2
যাইহোক, উভয় বিস্তার (...) এবং হয় ব্যর্থ বা ভুল ফলাফলের আসতে যদি অ্যারের অনেকগুলি উপাদানগুলি নেই হবে প্রযোজ্য developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
সবুজ

@ গ্রীন এফডাব্লুআইডাব্লু, প্যারামিটার গণনা সীমা 65536 (কমপক্ষে ক্রোমে) ([উত্স ( বাগস.ইউবকিট.আর.ইউজিও.বিগ.সি ??id=80797)] ))। সুতরাং যদি আপনার অ্যারেতে 65536 এরও বেশি উপাদান থাকে তবে এই উত্তরটি কার্যকর হবে না।
এমজিথোমাস99

4
65536 কারও পক্ষে যথেষ্ট হওয়া উচিত
vsync

41

আমি কোনও জেএস বিশেষজ্ঞ নই, তবে আমি দেখতে চেয়েছিলাম যে এই পদ্ধতিগুলি কীভাবে সজ্জিত হয়, তাই এটি আমার পক্ষে ভাল অনুশীলন ছিল। আমি জানি না যে এটি প্রযুক্তিগতভাবে এগুলি পারফরম্যান্স টেস্টের সঠিক উপায় কিনা তবে আপনি আমার কোডটিতে দেখতে পাচ্ছেন, তবে আমি কেবল তাদের একের পর এক চালাচ্ছি।

0 ম মান বাছাই করা এবং পাওয়া এখন পর্যন্ত সবচেয়ে খারাপ পদ্ধতি (এবং এটি আপনার অ্যারের ক্রমটি পরিবর্তন করে, এটি পছন্দসই নয়)। অন্যদের জন্য, আপনি লক্ষ লক্ষ সূচকের কথা না বলে পার্থক্যটি নগণ্য।

এলোমেলো সংখ্যার 100,000-সূচকের অ্যারে সহ পাঁচটি রানের গড় ফলাফল:

  • কমাতে চালাতে 4.0392ms সময় নিয়েছে
  • ম্যাথ.ম্যাক্স.এপ্লি চালাতে 3.3742 মিমি নিয়েছে
  • বাছাই এবং 0 তম মানটি চালাতে 67.4724 মিমি নিয়েছে
  • ম্যাথ.ম্যাক্স হ্রাস () এর মধ্যে চালাতে 6.5804 মিমি নিয়েছে
  • কাস্টম ফাইন্ডম্যাক্স ফাংশনটি চালাতে 1.6102 মিমি নিয়েছে

var performance = window.performance

function findmax(array)
{
  var max = 0,
      a = array.length,
      counter

  for (counter=0;counter<a;counter++)
  {
      if (array[counter] > max)
      {
          max = array[counter]
      }
  }
  return max
}

function findBiggestNumber(num) {
  var counts = []
  var i
  for (i = 0; i < num; i++) {
    counts.push(Math.random())
  }

  var a, b

  a = performance.now()
  var biggest = counts.reduce(function(highest, count){
        return highest > count ? highest : count
      }, 0)
  b = performance.now()
  console.log('reduce took ' + (b - a) + ' ms to run')

  a = performance.now()
  var biggest2 = Math.max.apply(Math, counts)
  b = performance.now()
  console.log('Math.max.apply took ' + (b - a) + ' ms to run')

  a = performance.now()
  var biggest3 = counts.sort(function(a,b){return b-a;})[0]
  b = performance.now()
  console.log('sorting and getting the 0th value took ' + (b - a) + ' ms to run')

  a = performance.now()
  var biggest4 = counts.reduce(function(highest, count){
        return Math.max(highest,count)
      }, 0)
  b = performance.now()
  console.log('Math.max within reduce() took ' + (b - a) + ' ms to run')

  a = performance.now()
  var biggest5 = findmax(counts)
  b = performance.now()
  console.log('custom findmax function took ' + (b - a) + ' ms to run')
  console.log(biggest + '-' + biggest2 + '-' + biggest3 + '-' + biggest4 + '-' + biggest5)

}

findBiggestNumber(1E5)

7
আমার জন্য, এটি এই প্রশ্নের সেরা উত্তর।
rzelek


37

আমি দেখতে পেয়েছি যে বড় অ্যারেগুলির জন্য (k 100k উপাদান), এটি কেবলমাত্র বিনীত forলুপের সাহায্যে অ্যারেটি পুনরাবৃত্তি করে than 30% এর চেয়ে আরও ভাল পারফর্ম করে Math.max.apply():

function mymax(a)
{
    var m = -Infinity, i = 0, n = a.length;

    for (; i != n; ++i) {
        if (a[i] > m) {
            m = a[i];
        }
    }

    return m;
}

বেঞ্চমার্ক ফলাফল


3
FWIW আউট 84% পর্যন্ত এখন Chrome 31 আসে
Ilan Biala

31

আপনি অ্যারেটিকে অবতরণ ক্রমে বাছাই করতে এবং প্রথম আইটেমটি পেতে পারেন:

[267, 306, 108].sort(function(a,b){return b-a;})[0]

4
আমি ধরে নেব যে আপনি কেবল সারণি এবং শেষ আইটেমটি পেতে পারেন ...?
শোগ 9

@ শোগ 9: হ্যাঁ, তবে আপনার নিজের তুলনা ফাংশনটি নির্দিষ্ট করতে হবে:sort(function(a,b){return b-a;})
গম্বো

9
আহ। আমি আরও ভাবছিলাম:[...].sort().pop()
শোগ 9

4
"সংখ্যাটি সন্ধান করতে অর্ডার-এন লাগে, ক্রমানুসারে অর্ডার (এন লগ এন) অর্ডার করতে (এন স্কোয়ার্ড) লাগে, ব্যবহৃত সাজানো অ্যালগরিদমের উপর নির্ভরশীল" - ওয়েবমাস্টার
ওয়ার্ড.com/forum91/382.htm

2
এছাড়াও মনে রাখবেন যে এটি অ্যারে বাছাই করে, যা পছন্দসই পার্শ্ব প্রতিক্রিয়া হতে পারে বা নাও পারে। প্রয়োগ সমাধানটি আরও ভাল পারফর্ম করছে এবং এর কোনও পার্শ্ব প্রতিক্রিয়া নেই।
কালেব

28

এটি সম্পর্কে:

var arr = [1,2,3,4];

var largest = arr.reduce(function(x,y){
       return (x > y) ? x : y;
});

console.log(largest);

আমি যদি এই উত্তরটি প্রথমে দেখতে পাই (বর্তমানে তালিকার নীচে রয়েছে) আমি দুই ঘন্টা বাঁচাতে পারতাম।
ব্যবহারকারী 139301

1
ম্যাথ.ম্যাক্স অ্যাপ্রোচ সম্ভবত সবচেয়ে স্ট্যান্ডার্ড, তবে অ্যারেটি খুব বড় (500 কে) থাকাকালীন আমি একটি স্ট্যাক ওভারফ্লো পেয়ে যাচ্ছিলাম। এই উত্তরটি দ্রুত এবং দক্ষ এবং এটিই আমি নিজেই ব্যবহার করে শেষ করেছি, তাই আমি এই উত্তরটি উপস্থাপন করছি।
জয়

8

অ্যারে.রেডুস কীভাবে ব্যবহার করবেন ?

[0,1,2,3,4].reduce(function(previousValue, currentValue){
  return Math.max(previousValue,currentValue);
});

প্রাথমিক মান সেট করা উচিত -Infinity
জ্যাক

@ জ্যাক, এটি কেন প্রয়োজন? এমনকি সমস্ত নেতিবাচক সংখ্যার অ্যারে সহ, আমি একটি বৈধ ফলাফল পেয়েছি।
CodeToad

1
এটি প্রান্তের কেস যার মাধ্যমে অ্যারেটি খালি রয়েছে।
জ্যাক 10

5

উত্তরগুলির প্রায় Math.max.apply()সবগুলিই ব্যবহার করে যা সুন্দর এবং জঘন্য, তবে এর সীমাবদ্ধতা রয়েছে।

ফাংশন আর্গুমেন্টগুলি স্ট্যাকের উপরে স্থাপন করা হয় যার একটি ডাউনসাইড রয়েছে - একটি সীমা। সুতরাং আপনার অ্যারে যদি সীমা চেয়ে বড় হয় তবে এটি ব্যর্থ হবেRangeError: Maximum call stack size exceeded.

একটি কল স্ট্যাকের আকার খুঁজতে আমি এই কোডটি ব্যবহার করেছি:

var ar = [];
for (var i = 1; i < 100*99999; i++) {
  ar.push(1);
  try {
    var max = Math.max.apply(Math, ar);
  } catch(e) {
    console.log('Limit reached: '+i+' error is: '+e);
    break;
  }
}

এটি আমার মেশিনে ফায়ারফক্সে সবচেয়ে বড় প্রমাণিত হয়েছে - 591519 । এর অর্থ এই যে, আপনি যদি অ্যারে চেয়ে বেশি অক্ষর 591519 আইটেম, Math.max.apply()পরিণাম ডেকে আনবে RangeError

এই সমস্যার সর্বোত্তম সমাধানটি পুনরাবৃত্ত উপায় (ক্রেডিট: https://developer.mozilla.org/ ):

max = -Infinity, min = +Infinity;

for (var i = 0; i < numbers.length; i++) {
  if (numbers[i] > max)
    max = numbers[i];
  if (numbers[i] < min)
    min = numbers[i];
}

আমি আমার ব্লগে এই প্রশ্নের সম্পর্কে লিখিত আছে এখানে


1
এটা কিন্তু ঠিক না. আমি উত্তরটি এখনই চাই, এসও তে, অন্য কোনও তৃতীয় পক্ষের সংস্থার অন্য কোনও লিঙ্ক নয়। বিশেষত যখন এটির সাথে মিলিত হয় "এখানে সমস্ত কিছু খারাপ, তবে দেখুন, দেখুন এটি আমার ব্লগে এত দুর্দান্ত ..."
oca

@ সের্গেআরশানস্কি একটি তৃতীয় পক্ষের লিঙ্কটি নতুন নতুন তাত্পর্য এবং সমাধানগুলির সাথে আপডেট হওয়ার ক্ষেত্রে খুব ভাল কাজ করে। এছাড়াও বিরক্ত বোধ করার দরকার নেই। লোকেরা কেবল আপনার সমস্যাগুলি সমাধান করতে চায়। আমিও এটি সমাধান করতে চেয়েছিলাম, তাই আমি এটি আমার ব্লগে লিখেছিলাম
lukas.pukenis

5

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/max

const inputArray = [ 1, 3, 4, 9, 16, 2, 20, 18];
const maxNumber = Math.max(...inputArray);
console.log(maxNumber);


2
যাইহোক, উভয় বিস্তার (...) এবং হয় ব্যর্থ বা ভুল ফলাফলের আসতে যদি অ্যারের অনেকগুলি উপাদানগুলি নেই হবে প্রযোজ্য developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
সবুজ

5

সর্বাধিক এবং ন্যূনতম সহজ এবং ম্যানুয়াল উপায়ের সন্ধান করা। এই কোডটি এর চেয়ে অনেক দ্রুত Math.max.apply; আমি অ্যারেতে 1000k সংখ্যা পর্যন্ত চেষ্টা করেছি।

function findmax(array)
{
    var max = 0;
    var a = array.length;
    for (counter=0;counter<a;counter++)
    {
        if (array[counter] > max)
        {
            max = array[counter];
        }
    }
    return max;
}

function findmin(array)
{
    var min = array[0];
    var a = array.length;
    for (counter=0;counter<a;counter++)
    {
        if (array[counter] < min)
        {
            min = array[counter];
        }
    }
    return min;
}

findmax()অ্যারেতে কেবল নেতিবাচক সংখ্যা থাকলে ভুল ফলাফল দেয়; findmin()একটি খালি অ্যারে জন্য ভুল ফলাফল দেয়।
জ্যাক

4

একটি অ্যারেতে সর্বাধিক সংখ্যাটি খুঁজে পেতে আপনার কেবল ব্যবহার করতে হবে Math.max(...arrayName);, এটি এর মতো কাজ করে:

let myArr = [1, 2, 3, 4, 5, 6];
console.log(Math.max(...myArr));

এ সম্পর্কে আরও জানতে Math.max: https://developer.mozilla.org/en-US/docs/Web/ জাভা স্ক্রিপ্ট / রেফারেন্স / গ্লোবাল_অবজেক্টস / ম্যাথ / ম্যাক্স


3

হ্যাঁ অবশ্যই বিদ্যমান: Math.max.apply(null,[23,45,67,-45]) এবং ফলাফল ফিরে 67;



1

Function.prototype.bindআপনি একটি "সর্বজনীন" ফাংশন প্রদান করে মোড়ানোটি দিয়ে কাজটি করা যায় তা ভুলে যাবেন না ।

var aMax = Math.max.apply.bind(Math.max, Math);
aMax([1, 2, 3, 4, 5]); // 5

1

আপনি Arrayএই ফাংশনটি বাড়িয়ে দিতে এবং এটিকে প্রতিটি অ্যারের অংশ করতে পারেন।

Array.prototype.max = function(){return Math.max.apply( Math, this )};
myArray = [1,2,3];

console.log( myArray.max() );

1
মারাত্মকভাবে অদক্ষ।
ফ্র্যাঙ্ক স্মিট

@ ফ্র্যাঙ্কশ্মিট, ধন্যবাদ, আমি সম্মত আসল উত্তরটি কোনও ভাল সমাধান ছিল না। ডিফল্ট অনুসারে বাছাই করা সংখ্যাগুলি বাছাই করে না, এটি উপাদানগুলিকে স্ট্রিং হিসাবে বিবেচনা করে। আমার উত্তরটি সঠিকভাবে সাজানোর জন্য সম্পাদনা করেছেন।
ইজ

এটা আমার বক্তব্য ছিল না। সর্বাধিক সন্ধানের জন্য অ্যারে বাছাই করা মারাত্মকভাবে অকার্যকর, কারণ এটি কমপক্ষে এন লগ এন ক্রিয়াকলাপ গ্রহণ করে, যেখানে সর্বাধিক সন্ধান করা যায় এন ক্রিয়াকলাপে।
ফ্রাঙ্ক স্মিট


1

ব্যবহার - Array.prototype.reduce()দুর্দান্ত!

[267, 306, 108].reduce((acc,val)=> (acc>val)?acc:val)

যেখানে acc = সঞ্চালক এবং ভাল = বর্তমান মান ;

var a = [267, 306, 108].reduce((acc,val)=> (acc>val)?acc:val);

console.log(a);


1

আপনি এটি চেষ্টা করতে পারেন,

var arr = [267,306,108];
var largestNum = 0;
for(i=0;i<arr.length;i++) {
   if(arr[i]>largest){
    var largest = arr[i];
   }
}
console.log(largest);

1

আমি কেবল জেএস দিয়ে শুরু করেছি তবে আমি মনে করি এই পদ্ধতিটি ভাল হবে:

var array = [34, 23, 57, 983, 198];<br>
var score = 0;

for(var i = 0; i = array.length; i++) {
  if(array[ i ] > score) {
    score = array[i];
  }
}

যদি arrayকেবলমাত্র নেতিবাচক সংখ্যা থাকে তবে এতে সমস্যা হবে ।
তিপিম্ম

0

বহুমাত্রিক অ্যারেতে সর্বাধিক সংখ্যাটি সন্ধান করুন

var max = []; 

for(var i=0; arr.length>i; i++ ){

   var arra = arr[i];
   var largest = Math.max.apply(Math, arra);
   max.push(largest);

   }
return max;

আপনার কোডটিতে কিছু বিস্তৃত ব্যাখ্যা যুক্ত করার পরামর্শ সর্বদা দেওয়া হয়, বিশেষত যদি এরই মধ্যে আরও একাধিক উত্তর থাকে। কেন এটি আলাদা / ভাল?
বোডজোন

@ বাউডজোন, মন্তব্যের জন্য ধন্যবাদ। এই উপায়টি খুব বেসিক যা কেবল কয়েকটি পদ্ধতির সামান্য জ্ঞান দিয়ে বুঝতে সহজ করে তোলে।
লাইভস্ট্রিম

এটি বৃহত্তম সংখ্যাটি ফিরিয়ে দেয় না, এটি বহুমাত্রিক অ্যারেতে প্রতিটি অ্যারের সর্বাধিক সংখ্যার একটি অ্যারে প্রদান করে। আপনি যেমন var tmax = Math.max.apply(Math, max), বা আরও ভাল যোগ করতে হবে , একটি লুপ ফাংশন যেমন একটি স্ট্যাকওভারফ্লো . com /a/ 54980012/7438857 এ একটি ক্লোজার ব্যবহার করুন । এই পরিবর্তনের মাধ্যমে, এটি একটি পৃথক প্রশ্নের উত্তরের উত্তর দেওয়া হয়, কীভাবে আপনি "বহুমাত্রিক অ্যারেতে সর্বাধিক সংখ্যা খুঁজে পাবেন", বা স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 32616910/… এ পাবেন । ডাব্লুআইপি: jsfiddle.net/jamesray/3cLu9for/8
জেমস রে

stackoverflow.com/a/32617019/7438857 সঠিক প্রশ্নের আরও উত্তম উত্তর, যদিও এই উত্তরটি উপরের প্রশ্নের উত্তর দেয় না, এটি বহুমাত্রিক অ্যারেতে প্রতিটি অ্যারের বৃহত্তম সংখ্যা দেয়।
জেমস রে

0

এটি চালান:

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

এবং এখন [3,10,2].max()রিটার্ন চেষ্টা করুন10


0

বুদ্বুদ বাছাই করে সর্বাধিক এবং ন্যূনতম মান সন্ধান করুন

    var arr = [267, 306, 108];

    for(i=0, k=0; i<arr.length; i++) {
      for(j=0; j<i; j++) {
        if(arr[i]>arr[j]) {
          k = arr[i];
          arr[i] = arr[j];
          arr[j] = k;
        }
      }
    }
    console.log('largest Number: '+ arr[0]);
    console.log('Smallest Number: '+ arr[arr.length-1]);


1
(1) জাভাস্ক্রিপ্ট অ্যারে ইতিমধ্যে একটি O (n লগ এন) বাছাই ফাংশন রয়েছে। (2) বুদ্বুদ সাজান হ'ল ও (n ^ 2)। (3) সর্বনিম্ন ও সর্বাধিক সন্ধান করা হ'ল হে (এন)।
Teepeemm

0

এটা চেষ্টা কর

function largestNum(arr) {
  var currentLongest = arr[0]

  for (var i=0; i< arr.length; i++){
    if (arr[i] > currentLongest){
      currentLongest = arr[i]
    }
  }

  return currentLongest
}

1
এই উত্তরটি কি এই পৃষ্ঠার অন্যান্য অনেকের থেকে যথেষ্ট আলাদা?
তিপিম্ম

0

@ কাসিমন্ডোর মন্তব্য অনুসারে , যা বেশিরভাগই মিস হয়েছে বলে মনে হচ্ছে, নীচে এখানে প্রদর্শিত হিসাবে সেরা পারফরম্যান্স রয়েছে বলে মনে হচ্ছে: https://jsperf.com/finding-maximum-element-in-an-array । মনে রাখবেন যে প্রশ্নের অ্যারে থাকাকালীন, পারফরম্যান্সের উল্লেখযোগ্য প্রভাব নাও পড়তে পারে, কারণ বড় অ্যারের কার্য সম্পাদন আরও গুরুত্বপূর্ণ হয়ে ওঠে এবং আবার যেমন উল্লেখ করা হয়েছে Math.max()যে অ্যারের দৈর্ঘ্য 65535 এর বেশি হলে এমনকি ব্যবহার করে না work এই উত্তরটি দেখুন

function largestNum(arr) {
    var d = data;
    var m = d[d.length - 1];
    for (var i = d.length - 1; --i > -1;) {
      if (d[i] > m) m = d[i];
    }
    return m;
}

0

টের্নারি অপারেটরগুলি ব্যবহার করে এটি কীভাবে করা যায় সে সম্পর্কে একটি পুনরাবৃত্ত দৃষ্টিভঙ্গি

const findMax = (arr, max, i) => arr.length === i ? max :
  findMax(arr, arr[i] > max ? arr[i] : max, ++i)

const arr = [5, 34, 2, 1, 6, 7, 9, 3];
const max = findMax(arr, arr[0], 0)
console.log(max);


0

একটি for/ofলুপ সমাধান:

const numbers = [2, 4, 6, 8, 80, 56, 10];


const findMax = (...numbers) => {
  let currentMax = numbers[0]; // 2

  for (const number of numbers) {
    if (number > currentMax) {
      console.log(number, currentMax);
      currentMax = number;
    }
  }
  console.log('Largest ', currentMax);
  return currentMax;
};

findMax(...numbers);

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.