JS除以数组
JS dividing by array
你好,我最近遇到一个问题,其中将数组与其他两个参数(低和高)一起馈送到函数中。该问题要求将数字从低到高除以数组中的每个值,如果所有值都可以整除以打印数字和 "all_match" 以及是否只有一个或一些可以整除以打印数字和 "one_match",否则只打印数字。所以我认为有两个数字的数组的解决方案如下:
function dividedByArray(data,low,high) {
for (i=low; i<=high; i++) {
if (i % data[0] === 0 && i % data[1] === 0) {
console.log(i + " all_match")
} else if (i % data[0] === 0 || i % data[1] === 0) {
console.log(i + " one_match")
} else {
console.log(i)
}
}
}
dividedByArray([2,3],5,10)
我一直在想如果你不知道数组有多长(假设数组是 4 个数字),你将如何做这道题。我对此比较陌生。我一直在尝试 map 功能,但似乎无法找到实现它的方法。我还在循环中尝试了另一个 for 循环,但它只打印了两次。谢谢!
function dividedByArray(data,low,high) {
for (i=low; i<=high; i++) {
var passed = 0;
for(var curr in data) {
if(i % data[curr] === 0) {
passed++;
}
}
switch(passed) {
case data.length :
console.log(i + 'all_match');
break;
case 0 :
console.log(i)
break;
default:
console.log(i + " one_match");
}
}
}
您可以使用那些 Array 函数,它使代码更具可读性。
every
、some
和 filter
。
function dividedByArray(data,low,high) {
Array.from({length : high - low + 1}, (el,i) => low + i)
.forEach(number=>{
if(data.every(item=> item % number === 0))
console.log(number, 'ALL MATCH');
else if(!data.some(item=> item % number === 0))
console.log(number, 'NO MATCHES');
else
console.log(number, 'MATCH :', data.filter(item=> item % number === 0));
});
}
dividedByArray([5, 15, 10],5,10);
你好,我最近遇到一个问题,其中将数组与其他两个参数(低和高)一起馈送到函数中。该问题要求将数字从低到高除以数组中的每个值,如果所有值都可以整除以打印数字和 "all_match" 以及是否只有一个或一些可以整除以打印数字和 "one_match",否则只打印数字。所以我认为有两个数字的数组的解决方案如下:
function dividedByArray(data,low,high) {
for (i=low; i<=high; i++) {
if (i % data[0] === 0 && i % data[1] === 0) {
console.log(i + " all_match")
} else if (i % data[0] === 0 || i % data[1] === 0) {
console.log(i + " one_match")
} else {
console.log(i)
}
}
}
dividedByArray([2,3],5,10)
我一直在想如果你不知道数组有多长(假设数组是 4 个数字),你将如何做这道题。我对此比较陌生。我一直在尝试 map 功能,但似乎无法找到实现它的方法。我还在循环中尝试了另一个 for 循环,但它只打印了两次。谢谢!
function dividedByArray(data,low,high) {
for (i=low; i<=high; i++) {
var passed = 0;
for(var curr in data) {
if(i % data[curr] === 0) {
passed++;
}
}
switch(passed) {
case data.length :
console.log(i + 'all_match');
break;
case 0 :
console.log(i)
break;
default:
console.log(i + " one_match");
}
}
}
您可以使用那些 Array 函数,它使代码更具可读性。
every
、some
和 filter
。
function dividedByArray(data,low,high) {
Array.from({length : high - low + 1}, (el,i) => low + i)
.forEach(number=>{
if(data.every(item=> item % number === 0))
console.log(number, 'ALL MATCH');
else if(!data.some(item=> item % number === 0))
console.log(number, 'NO MATCHES');
else
console.log(number, 'MATCH :', data.filter(item=> item % number === 0));
});
}
dividedByArray([5, 15, 10],5,10);