javascript:通过类方法将字符串添加到对象中

时间:2016-10-15 16:30:59

标签: javascript class object methods hash

我尝试使用几种方法创建一个javascript类,让我添加视图和删除。我坚持使用add方法,它应该返回一个传递给add方法的每个字符串的唯一ID,但是我无法弄清楚如何在我使用时跳转到下一个代码块。我完成了添加字符串。以下是我目前的一些代码:

var obj = {};
var arr = [];

var Words = function(){  
  this.add = function(newWord){
    if(newWord !== false){
      arr.push(newWord); 
    } else {
      for (var i = 0; i < arr.length; i++){        
        obj[i] = arr[i];      
        return obj[i];
      }           
    }

var words = new Words();
words.add('first');
words.add('second');
words.add('third');

我觉得我应该创建一个在我推完最后一个传递的字符串之后运行的某种类型的next()函数,但我似乎已经忘记了所有内容。

1 个答案:

答案 0 :(得分:0)

虽然我真的不知道你想要完成什么,但你的代码存在一些问题......

对象具有键和值。对于每个键都有一个值。

实施例。 mykey: "corresponding value"

for (var i = 0; i < arr.length; i++){        
    obj[i] = arr[i];
    return obj[i];
}

当我是一个整数时,你设置obj[i],所以除非你的键是整数(可能不是),否则你需要指定键。

否则,使用另一个数组来处理你正在做的事情(如果可能的话)。

如果您实际上使用数字键填充此对象,则忽略上述内容。

我还会指出使用callbacks来查找.add()何时完成(或者在运行.add()之后运行代码?)。

为什么不只是创建一个数组,根据需要设置它的值,并根据迭代检索它们?

var array = [];

//add
array.push("first");

//view value
console.log(array[0]); // output: "first"

//view index
array.indexOf("first"); // output 0

//delete
array.splice(0, 1);

如果您愿意,请将其打包为类:

var array = [];
var Words = function() {
  this.add = function(input) {
    array.push(input);
  }
  this.view = function(input) {
    return array[input];
  }
  this.delete = function(input) {
    array.splice(input, 1);
  }
}

希望这有帮助。