返回三元条件javascript es6

8e2ybdfx  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(311)

此问题已在此处找到答案

检查数组是否为空或是否存在(22个答案)
javascript中的对象相等和值相等(1个答案)
两小时前关门了。
我正在编写一个函数,当它为true时,它应该返回数组,当它为false时,它应该返回字符串,我第一次这样写: return (myArr != [])? myArr:${integer} is prime; 但当我的仓库空空的时候,我就不再接收了 ${integer} is prime 我得到一个空的arr [] ,当我写作时 return (myArr.length != [])? myArr:${integer} is prime` ,它是有效的,我不明白为什么?
下面是我的代码:

function divisors(integer) {
  var i = 2;
  var myArr = [];
  do {
    (integer % i) ? null : myArr.push(i);
    i++
  } while (i < integer);

  return (myArr != []) ? myArr : `${integer} is prime`;
}

console.log(divisors(42));
ddrv8njm

ddrv8njm1#

您无法测试数组==[]以查看它是否为空-请参阅问题的注解
也许你是这个意思

function divisors(integer) {
  var myArr = Array.from(Array(integer),(x,i)=>i).filter(int => integer%int===0)
  return (myArr.length>1 && myArr[0] === 1) ? myArr : `${integer} is prime`;
}

console.log(divisors(42));
console.log(divisors(11));
console.log(divisors(12));
console.log(divisors(997));

相关问题