Как проверить, что любая из переменных больше 0 - PullRequest
0 голосов
/ 17 мая 2018

Как я могу проверить, больше ли какая-либо из переменных, чем 0, из заданной переменной в Typescript?

Как мне переписать приведенный ниже код, чтобы он был более элегантным / лаконичным?

checkIfNonZero():boolean{
  const a=0;
  const b=1;
  const c=0;
  const d=0;
  //Regular way would be as below. 
  //How can this use some library instead of doing comparison for each variable
  if(a>0 || b>0 || c>0 || d>0){
   return true;
  }
  return false;
}

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Вы можете объединить оператор && с ternary operator следующим образом:

(a && b && c && d > 0) ? true : false // will return true if all integers are more than 0

jsFiddle: https://jsfiddle.net/AndrewL64/6bk1bs0w/


ИЛИ вы можете присвоить переменные массиву и использовать Array.prototype.every () следующим образом:

let x = [a, b, c, d]

x.every(i => i > 0) // will return true if all integers are more than 0

jsFiddle: https://jsfiddle.net/AndrewL64/6bk1bs0w/1/


ИЛИ, чтобы сделать вышеупомянутое еще короче, вы можете напрямую поместить значения в массив и использовать every в массиве прямо так:

[0, 1, 0, 0].every(i => i > 0); // will return false since all integers are not more than 0

jsFiddle: https://jsfiddle.net/AndrewL64/6bk1bs0w/3/


ИЛИ вы можете сделать функцию многоразового использования один раз и запустить ее несколько раз всего одной строкой, например:

function moreThanOne(...args){
   // Insert any of the above approaches here but reference the variables/array with the word 'arg'
}

moreThanOne(3,1,2,0); // will return false as well as alert false

moreThanOne(3,1,2,4); // will return true as well as alert true

jsFiddle: https://jsfiddle.net/AndrewL64/6bk1bs0w/2/

0 голосов
/ 17 мая 2018

Вы можете объединить переменные в массив и затем запустить немного для него:

return [a, b, c, d].some(item => item > 0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...