Javascript 中的重构方法(从数组中添加/删除项目)

Refactoring methods in Javascript (adding / deleting items from an array)

我遇到了一个问题,我必须重构下面有几个错误的代码:

function thingsToBuy() {
  var list = [
    "milk",
    "bread",
    "bananas"
  ];
  return {
    removeItem: function(name) {
      list.filter(item => item === name);
    },
    addItem: function() {
      return list.push();
    },
    getList: function(list) {
      return list;
    }
  };
}

到目前为止,我有这个:

function thingsToBuy() {
  let list = [
    "milk",
    "bread",
    "bananas"
  ];
  return {
    removeItem: function(name) {
      for(let i = 0; i < list.length; i++) {
        if(list[i] === name) 
        return list.splice(i, 1)
      }
    },
    addItem: function(item) {
      list.push(item);
  
    },
    getList: function() {
      return list;
    }
  };
}

我是不是遗漏了什么或者我实施了什么错误?任何反馈将不胜感激!

解决方法:

function thingsToBuy() {
  var list = [
    "milk",
    "bread",
    "bananas"
  ];
  return {
    removeItem: function(name) {
      list = list.filter(item => item !== name);
      return list;
    },
    addItem: function(item) {
      list.push(item);
      return list;
    },
    getList: function() {
      return list;
    }
  };
}

这是一个基本练习,看你是否理解 JS 的工作原理。 该函数为您提供了一些改变列表变量的方法。您应该阅读有关 Array.filter、Array.push 的更多信息以查看它们的输入和输出。