Javascript 如果输入:8-e预期输出:2 | 4 | 6 | 8

Javascript 如果输入:8-e预期输出:2 | 4 | 6 | 8,javascript,Javascript,问题2:输入由字符串组成,“o”表示奇数,“e”表示要打印的偶数 例1 输入:8-e 预期产出:2 | 4 | 6 | 8 例2 输入:6-o 预期产出:1 | 3 | 5 例3 输入:1-o 预期产出:1 如果我尝试过for循环,但我是一个初学者,所以我对(-e)感到困惑 const evenOdd=(数字)=>{ 设evenvalue=[]; 设oddValue=[]; 对于(设i=0;i您可以在-上拆分,并根据类型添加值,直到数字为止) 按-拆分给定输入,第一个值表示最大值,第二个值表示

问题2:输入由字符串组成,“o”表示奇数,“e”表示要打印的偶数

例1

输入:8-e

预期产出:2 | 4 | 6 | 8

例2

输入:6-o

预期产出:1 | 3 | 5

例3

输入:1-o

预期产出:1

如果我尝试过for循环,但我是一个初学者,所以我对(-e)感到困惑

const evenOdd=(数字)=>{
设evenvalue=[];
设oddValue=[];

对于(设i=0;i您可以在
-
上拆分,并根据类型添加值,直到数字为止)

  • -
    拆分给定输入,第一个值表示最大值,第二个值表示其类型
  • 如果是偶数,请检查类型。将偶数值从
    2开始添加到最大值,否则从1开始添加,最后用
    |
    将它们连接起来
let func=(输入)=>{
让[num,type]=input.split(“-”)
设arr=[]
设i=1+(类型=='e')

而(i您需要首先从字符串中提取字母和数字。一种简单的方法是:

const evenOdd = (s) => {
  let odd = s.length-1 ==='o';
  let number = Number(s.substring(0, s.length-2));
  let evenvalue = [];
  ...
  if(odd){...} else {...}
};

您还可以使用或如果模式更复杂,则使用a。

基本上,不向函数提供数字,提供字符串,然后解析字符串。也就是说,不要尝试给函数
9-e
,给它
'9-e'

  • 通过在
    -
    上拆分来获取输入部分
  • 把这个数字变成一个数字
  • 0表示偶数,1表示奇数(x%2表示偶数为0,1表示奇数)
  • 建立结果
函数列表编号(约束)
{
const parts=constraint.split('-');
常数编号=编号(零件[0]);
常数编号类型=零件[1]=“e”?0:1;
让结果=[];

对于(设i=1;i您可以使用
while
语句,如果所需类型为偶数,则获得一个起始值加上一个偏移量。然后迭代并将该值添加到结果集中,直到该值大于最大值

功能fn(请求){
var[max,type]=request.split('-'),
i=1+(类型=='e'),
结果=[];

你必须先解析你的字符串。你可以使用正则表达式,也可以简单地提取字符串的最后两个字符。我看不出有任何理由在这里投反对票,op公布了他的努力,也非常清楚他试图实现的目标
const evenOdd = (s) => {
  let odd = s.length-1 ==='o';
  let number = Number(s.substring(0, s.length-2));
  let evenvalue = [];
  ...
  if(odd){...} else {...}
};