Return 三元条件 Javascript ES6
Return ternary condition Javascript ES6
我正在编写一个函数,当它为真时应该 return Array 并且当它为假时 string
我首先这样写:
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));
我正在编写一个函数,当它为真时应该 return Array 并且当它为假时 string
我首先这样写:
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));