【问题标题】:How to check if array index is not equal to argument?如何检查数组索引是否不等于参数?
【发布时间】:2021-07-30 20:17:08
【问题描述】:

仍然通过 HTML 页面创建迷你文本 RPG 游戏来学习 Javascript :) 很好的做法,尝试学习一些新方法或在我的项目中添加一些新的更好的代码。

现在我正在尝试通过函数将语言添加到我的项目中;

language.addLang = function(name,id){
    if (id != this.log[id]) {
        this[name] = new Object;
        this.log[id] = name
        
    }
    
}

编辑; 试图说是否可以将数组索引号与参数 ID 号进行比较。 参数上的名称只是一个语言名称,例如带有字符串值的英语。 而 id 就是它将被放入的数组索引。还有一个条件分支,它将所有文本翻译成该语言以供以后使用。

对于想知道什么是日志的人;

language.log = [
  undefined, 'English','Swedish','Japanese','German'
]

总结; 如上所述,日志数组长度现在是 5。 所以假设我想在我的项目中添加一种新的语言来翻译,稍后我可以编写 language.addLang('Chinese',5)。 这会将“中文”字符串添加到数组索引号 5 中。 然而!如果我从已经存在的不同索引号添加,它将显示一些错误,而不是将“中文”覆盖为另一种语言。

我希望这比我上一篇文章解释得更好。 我可以手动翻译它,而不是为每种语言添加一个新对象。 但是,如果我可以将参数编号与索引编号进行比较,那将是救命的。

【问题讨论】:

  • 欢迎来到 SO。您的问题取决于 id 和 log 是什么,如果没有 minimal reproducible example,我们不知道。至于数组比较,您应该搜索该主题。两个不同的数组对象可以有相同的元素但它们不是==
  • 请说明idlog[Id] 是什么。有id != this.log[id]的比较。
  • 确实更新了我的帖子。抱歉,我的意思是如果您可以将数组索引号与此参数号进行比较。示例 如果我已经有 language.log[1],如果我写 language.addLang('English',1) 不会发生任何事情,因为 1 != this.log[ 1] 是假的。

标签: javascript arrays conditional-statements equals


【解决方案1】:

@Charliefl 是对的,但我想这可能会给你一个线索,通过根据你的其他代码进行修改来应用到你的案例。

var IncludedLanguages = [ 3 , 4 , 5 ] 
var LangObjectsArray = [] 


language.addLang = function(name,id){
   
   if ( IncludedLanuages.includes( id  ) != true )   {
      
            
        
      var obj = { "name" : name , "id" : id  }  
        LangObjectsArray.push( obj ) 
        IncludedLanguages.push( id )
    }
    
}

【讨论】:

  • 感谢这段代码,但是当我复制时出现了一些错误; Uncaught ReferenceError: IncludedLanuages is not defined 也更新了我的帖子。我只想检查参数 id 是否与数组索引号不同。
猜你喜欢
  • 1970-01-01
  • 2012-07-22
  • 2023-04-02
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
  • 2010-09-20
  • 2014-09-27
  • 1970-01-01
相关资源
最近更新 更多