Это продолжение моей предыдущей статьи: 4 совета JavaScript для более короткого кода

1. Замените Switch и If-Else парами ключ-значение

Оператор switch и оператор if-else оценивают выражение и выполняют выражения условно. Но по мере увеличения числа случаев растет и код.

//using switch
function returnDaySwitch(val) {
  switch (val) {
    case 1:
      return "It's monday"
    case 2:
      return "It's tuesday"
    case 3:
      return "It's wednesday"
    case 4:
      return "It's thursday"
    case 5:
      return "It's friday"
    case 6:
      return "It's saturday"
    case 7:
      return "It's sunday"
    default:
      return 'Enter a value between 1 - 7'
  }
}
//using if-else
function returnDayIfElse(val) {
  if (val == 1) {
    return "It's monday"
  } else if (val == 2) {
    return "It's tuesday"
  } else if (val == 3) {
    return "It's wednesday"
  } else if (val == 4) {
    return "It's thursday"
  } else if (val == 5) {
    return "It's friday"
  } else if (val == 6) {
    return "It's saturday"
  } else if (val == 7) {
    return "It's sunday"
  } else {
    return 'Enter a value between 1 - 7'
  }
}
const day = 3
console.log(returnDaySwitch(day)) //It's wednesday
console.log(returnDayIfElse(day)) //It's wednesday

Это можно упростить, используя пары ключ-значение объекта.

function returnDayKeyValue(val) {
    const returnDayObject = {
        1: "It's monday",
        2: "It's tuesday",
        3: "It's wednesday",
        4: "It's thursday",
        5: "It's friday",
        6: "It's saturday",
        7: "It's sunday",
    }
    if(!returnDayObject[val]){
     return "Enter a value between 1 - 7";
    }
    return returnDayObject[val]
}
cosnt day = 3;
console.log(returnDayKeyValue(day)); //It's wednesday

Julian BRUXELLE Поделился способом обхода if-else внутри функции

const returnDayKeyValue = (val) => {
  const returnDayObject = {
    1: "It's monday",
    2: "It's tuesday",
    3: "It's wednesday",
    4: "It's thursday",
    5: "It's friday",
    6: "It's saturday",
    7: "It's sunday",
  }
  returnDayObject[val] ?? "Enter a value between 1 - 7";
}

Это можно сделать даже короче.

const dayToString = day =>
    ({
        1: "It's Monday",
        2: "It's Tuesday",
        3: "It's Wednesday",
        4: "It's Thursday",
        5: "It's Friday",
        6: "It's Saturday",
        7: "It's Sunday",
    }[day] ?? "Enter a value between 1 - 7");

Or

const dayToString = day =>
    [
        undefined,
        "It's Monday",
        "It's Tuesday",
        "It's Wednesday",
        "It's Thursday",
        "It's Friday",
        "It's Satuday",
        "It's Sumday",
    ][day] ?? "Enter a value between 1 - 7";

2. Удалите повторяющиеся элементы в массиве

Дублирующиеся элементы в массиве можно удалить с помощью Конструктора набора и синтаксиса расширения. Конструктор набора преобразует массив в набор, в котором не может быть повторяющихся элементов. Синтаксис распространения можно использовать для преобразования объекта набора обратно в массив.

const array = [1,2,2,3,4,5]
const uniq = [...new Set(array)];
console.log(uniq) // [1,2,3,4,5]

3. Имена вычисляемых свойств

Вы не можете установить ключи объекта как переменные напрямую. Он будет читать имена переменных как имена ключей.

const key1 = "name";
const key2 = "age";
const student = {
    key1:"john Doe",
    key2:26
}
console.log(student)
//{ key1:"john Doe", key2:26 }

Начиная с ECMAScript 2015, в квадратных скобках [] можно поместить выражение, которое будет вычислено и использовано в качестве имени свойства.

const key1 = "name";
const key2 = "age";
const student = {
    [key1]:"john Doe",
    [key2]:26
}
console.log(student)
//{ name:"john Doe", age:26 }

4. Не допускайте, чтобы ложное значение оценивалось как ложное

В JavaScript существует шесть ложных значений: undefined, null, NaN, 0, "" (пустая строка) и false. Ложное значение — это то, что оценивается как ЛОЖЬ, например, при проверке переменной. Могут быть сценарии, в которых вы не хотите, чтобы ложное значение оценивалось как ложное.

const number = 5;
if(number){
    console.log('The number exists')
}else{
    console.log('The number do not exist')
}

Напечатает The number exists. Но

const number = 0;
if(number){
    console.log('The number exists')
}else{
    console.log('The number do not exist')
}

Напечатает The number do not exists. Это можно решить, выдав исключение при оценке

const number = 0;
if(number===0?true:number){
    console.log('The number exists')
}else{
    console.log('The number do not exist')
}

Напечатает The number exists. 0 в выражении можно заменить любым ложным значением.