【问题标题】:Why is this loop using function parameter returning only once? [duplicate]为什么这个循环使用函数参数只返回一次? [复制]
【发布时间】:2019-11-17 23:33:48
【问题描述】:
const alphabets= {
  first: ["a", "b", "c"],
  second: ["d", "e", "f"],
  third: ["g", "h"]
};    

function trial(arr) {

  for (let i = 0; i < arr.length; i++) {
    const argh = `<li class = "text-warning">${i}<li>`;
    return argh;
  }
};

console.log(trial(alphabets.second));

我在用数字替换条件的函数之外尝试了相同的“for循环”,它工作正常。为什么在放入函数并在条件中使用参数时它只循环一次?

【问题讨论】:

标签: javascript for-loop function-parameter


【解决方案1】:

return

return 语句结束函数执行并指定要返回给函数调用者的值。

您可以在for循环之外声明变量并在每次迭代中连接htmlString并在循环完成后返回变量。

const alphabets= {
  first: ["a", "b", "c"],
  second: ["d", "e", "f"],
  third: ["g", "h"]
};    

function trial(arr) {
  let argh='';
  for (let i = 0; i < arr.length; i++) {
    argh += `<li class = "text-warning">${i}<li>`;
  }
  return argh;
};

console.log(trial(alphabets.second));

【讨论】:

    【解决方案2】:

    因为 return 语句会停止你的函数。也许你想在返回之前连接一个字符串?

    function trial(arr) {
    
      let returnValue = '';
    
      for (let letter of arr) {
        returnValue += `<li class = "text-warning">${letter}<li>`;
      }
    
      return returnValue;
    };
    

    【讨论】:

      【解决方案3】:

      如果你想要一个数组,你可以推入一个数组,然后在循环完成后返回。

      function trial(arr) {
        const argh = [];
        for (let i = 0; i < arr.length; i++) {
          argh.push(`<li class = "text-warning">${i}<li>`);
        }
        return argh;
      };
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-11
        • 1970-01-01
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多