我正在编写一个函数,当它为真时应该返回数组,在假时应该返回一个字符串我首先是这样写的:return (myArr != [])? myArr:`${integer} is prime`;
但是当myArry是空的时,接收${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));
您无法测试数组 == [] 以查看它是否为空 - 请参阅对问题的评论
也许你的意思是这个
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));