首页 > 解决方案 > 每次我们调用函数时,它都应该返回旧函数项 + 新函数项

问题描述

编写一个函数 addToList ,它接受一个字符串参数 toDo 并将当前列表作为字符串返回,每次我们调用该函数时,它都应该返回旧的 toDo 项 + 新的

    const addToList = function (toDo) {
  // TODO: Your code here
};

addToList("Eat"); // => 'Eat'
addToList("Play"); // => 'Eat Play'
addToList("Sleep"); // => 'Eat Play Sleep'
addToList("repeat"); // => 'Eat Play Sleep repeat'

标签: javascript

解决方案


使用闭包,其中外部函数将声明一个数组,而内部函数将负责累积值。

每次调用内部函数时,执行连接操作将数组转换为字符串。

const addToListWrap = function(toDo) {
  const arr = [];
  return function(toDo) {
    arr.push(toDo);
    return arr.join(' ');
  }
};
const addToList = addToListWrap();

addToList("Eat"); // => 'Eat'
addToList("Play"); // => 'Eat Play'
addToList("Sleep"); // => 'Eat Play Sleep'
console.log(addToList("repeat")) // => 'Eat Play Sleep repeat'


推荐阅读