首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找数组中的第一个逗号和该符号的总数。

查找数组中的第一个逗号和该符号的总数。
EN

Stack Overflow用户
提问于 2021-04-29 10:54:37
回答 3查看 79关注 0票数 0

我是科技大学的学生。我在JS上有我的乡巴佬。这里是:给出了一个char数组。按下“结果”按钮,找到数组中的第一个逗号和这些字符的总数,如果不在数组中,则显示相应的消息。I编写了我的代码,但老师说这是错误的,因为逗号的消息必须显示一次,这样就没有逗号了。求你帮帮我。

代码语言:javascript
复制
function result() {
  alert('PI-20\nTask №5\nArray\nOpt. №4')
  var total = 0;
  var arr = ['s', 'b', '4', '7', ',', '5', 'a', ','];
  for (var i = 0; i < arr.length; i++) {
    if (arr[i] == ',') {
      total += 1;
      alert('First comma has index ' + i);
      alert('Total numaber of comma ' + total);
    } else {
      alert('There is no comma');
    }
  }
}
代码语言:javascript
复制
<button onclick="result()">Result</button>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-04-29 11:01:56

这将给你你想要的答案。

代码语言:javascript
复制
function result(){
        alert ('PI-20\nTask №5\nArray\nOpt. №4')
        var total = 0;
        var arr = ['s', 'b', '4', '7', ',', '5', 'a', ','];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] == ',') {
                total += 1;    
            } 
        }
         if(total > 0){
            alert('Total numaber of comma ' + total);
            }
         else{
            alert('There is no comma');
            }
    }

您所要做的就是在循环结束后添加一个if条件,以获得最终的总价值,而不是检查总值是否大于0,如果是,则通知消息数组中有逗号。

票数 2
EN

Stack Overflow用户

发布于 2021-04-29 11:25:13

下面是一种更现代的方法,使用Array.reduce从数组中收集一些聚合值并显示它们。

注意:通常使用内联事件处理程序是不是个好主意。代码片段使用事件委托

代码语言:javascript
复制
document.addEventListener("click", handle);

const log = (...strs) => {
  console.clear();
  strs.unshift('PI-20 Task №5 Array Opt. №4');
  console.log(strs.join("\n"));
};

function handle(evt) {
  if (evt.target instanceof HTMLButtonElement) {
    return result(document.querySelector("input").value.split(""));
  }
}

function result(inputValue) {
  if (!inputValue.length) {
    return log(`no values`);
  }
  const results = inputValue
    .reduce( (acc, val, i) =>
      ({ ...acc,
        chr: acc.chr || val,
        sumOfCommas: (acc.sumOfCommas || 0) + (val === ',' ? 1 : 0),
      }), { firstComma: inputValue.indexOf(",") } );
  log(
    `Input: "${inputValue.join(``)}"`,
    `Total characters: ${inputValue.length}`,
    `${results.firstComma > -1 ? `First comma Array index: ${
      results.firstComma} (position ${
        results.firstComma + 1} in input)` : `No comma's`}`,
    `${results.firstComma > -1 ? `Number of comma's: ${
      results.sumOfCommas}` : ``}`
  );
}
代码语言:javascript
复制
<input type="text" value="sb47,5a," placeholder="Type some text"/>
<button>Result</button>

票数 0
EN

Stack Overflow用户

发布于 2021-04-29 11:01:47

问题在变量总数=0中;

将其设置为变量总数;

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67315945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档