简体   繁体   English

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

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

I encountered a question where I have to refactor the code below that has several errors in it:我遇到了一个问题,我必须重构下面有几个错误的代码:

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;
    }
  };
}

So far, I have this:到目前为止,我有这个:

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;
    }
  };
}

Am I missing anything or have I implemented anything wrong?我是否遗漏了什么或者我实施了什么错误? Any feedback would be much appreciated!任何反馈将不胜感激!

The solution:解决方案:

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;
    }
  };
}

This is a basic exercise to see if you understand how JS works.这是一个基本练习,看看您是否了解 JS 的工作原理。 The function gives you some methods to mutate the list variable. function 为您提供了一些改变列表变量的方法。 You should read more about Array.filter, Array.push to see their input and output.您应该阅读有关 Array.filter、Array.push 的更多信息以查看它们的输入和 output。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM