๐Ÿ“ŒLanguage/JavaScript

TIL) ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ์ˆซ์ž ๋ฐฐ์—ด์—์„œ ์ตœ๋Œ€๊ฐ’ ์ฐพ๊ธฐ

hellohailie 2022. 6. 11. 18:35

1. reduce ์‚ฌ์šฉํ•˜๊ธฐ

// For large data, it's better to use reduce. Supose arr has a large data in this case:
const arr = [1, 5, 3, 5, 2];
const max = arr.reduce((a, b) => { return Math.max(a, b) });

// console.log(max);
// 5

 

2. Math.max.apply ์‚ฌ์šฉํ•˜๊ธฐ

// For arrays with relatively few elements you can use apply: 
const arr = [1, 5, 3, 5, 2];
const max = Math.max.apply(null, arr);

//console.log(max);
//5

 

3. spread syntax ์‚ฌ์šฉํ•˜๊ธฐ

// or spread operator:
const arr = [1, 5, 3, 5, 2];
const max = Math.max(...arr);

//console.log(max)
//5

 


๋ฒˆ์™ธ 1. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ๋ฌธ์ž์—ด ๋ฐฐ์—ด์—์„œ ๋ฐฐ์—ด์—์„œ ๊ฐ€์žฅ ๊ธด ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ด

function getLongestElement(arr) {
  // ๋ฐฐ์—ด ์•ˆ์˜ ์š”์†Œ์˜ ๊ธธ์ด๋ฅผ ์•Œ์•„์•ผํ•œ๋‹ค. 
  // ๊ทธ๋ฆฌ๊ณ  ์ตœ์ข… ๋ฆฌํ„ด ๊ฐ’์€ ๋ฐฐ์—ด์˜ ์š”์†Œ๊ฐ’

  return arr.reduce((acc, cur) => {
    if(acc.length < cur.length){
      return cur;
    } else {
      return acc;
    }
  },'')
}

 

 


 

๋ฒˆ์™ธ 2. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ๋ฌธ์ž์—ด ๋ฐฐ์—ด์—์„œ ๋ฐฐ์—ด์—์„œ ๊ฐ€์žฅ ๊ธด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๋ฆฌํ„ด

 

๋ฐฉ๋ฒ•1

function getLengthOfLongestElement(arr) {
  let mapped = arr.map(e => e.length);
  if(arr.length === 0) {
    return 0;
  }
  return Math.max.apply(null,mapped);
}

๋ฐฉ๋ฒ•2

function getLengthOfLongestElement(arr) {
  if(arr.length === 0) {
    return 0;
  }
  return arr.reduce((acc, cur) => {
    if(acc.length >= cur.length) {
      return acc;
    } else {
      return cur;
    }
  },0).length;
}