【问题标题】:How do I return a divStr properly?如何正确返回 divStr?
【发布时间】:2021-06-17 04:32:11
【问题描述】:

我目前有一个需要 2 个输入和一个 divStr 的函数

function showallnick(){
  let list = [" the Pianist ", " the Scientist ", " the Coder ", " the Student ", " Sleepy "];
  let first = firstInEl.value;
  let last = lastInEl.value;
  let divStr = "";
  for(let i = 0; i < list.length; i++) {
    divStr += `<div> ${list[i]}</div>`;
  }
  nicknameEl.innerHTML = allNickname(first, divStr, last);
}

但是当我退货时

function allNickname (f, d, l){
  return f + d + l
}

返回函数如下所示:

First 
divStr
divStr
Last

而不是

First divStr Last
First divStr Last
First divStr Last
First divStr Last

返回函数有什么问题?

【问题讨论】:

  • 尝试使用内联 &lt;span&gt; 而不是块元素 &lt;div&gt;
  • list 里面有什么?
  • @Samathingamajig let list = [“钢琴家”、“科学家”、“程序员”、“学生”、“困”];
  • 为什么你认为f + d + l 会产生f + d + l + f + d + l + f + d + l + f + d + l

标签: javascript arrays string


【解决方案1】:

您似乎想在list 的每个元素上使用allNickname

function showallnick(){
  let list = [" the Pianist ", " the Scientist ", " the Coder ", " the Student ", " Sleepy "];
  let first = firstInEl.value;
  let last = lastInEl.value;
  let divStr = "";
  for(let i = 0; i < list.length; i++) {
    divStr += `<div>${allNickname(first, list[i], last)}</div>`;
  }
  nicknameEl.innerHTML = divStr;
}

这是一个完整的版本:

function showallnick(){
  let list = [" the Pianist ", " the Scientist ", " the Coder ", " the Student ", " Sleepy "];
  let first = firstInEl.value;
  let last = lastInEl.value;
  let divStr = "";
  for(let i = 0; i < list.length; i++) {
    divStr += `<div>${allNickname(first, list[i], last)}</div>`;
  }
  nicknameEl.innerHTML = divStr;
}

function allNickname (f, d, l){
  return f + d + l
}
<input id="firstInEl" placeholder="first" />
<input id="lastInEl" placeholder="last" />

<button onclick="showallnick()">showallnick()</button>

<div id="nicknameEl"></div>

【讨论】:

    【解决方案2】:
    function functionOne(){
      let first = firstInEl.value;
      let last = lastInEl.value;
      let divStr = "";
      for(let i = 0; i < list.length; i++) {
        divStr += `<div> ${first} ${list[i]} ${last}</div> \n`;
      }
       nicknameEl.innerHTML = allNickname(divStr);
       console.log(allNickname(divStr))
    }
    
    function allNickname (d){
      return d;
    }
    

    【讨论】:

    • @Sant 简单的解决方案是在 divStr 中添加第一个和最后一个变量,` divStr += "${first} String ${last} "`
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2022-01-19
    • 2016-01-18
    相关资源
    最近更新 更多