【问题标题】:Javascript: Push a word into array only if the array doesn't have that word already?Javascript:仅当数组还没有那个词时才将一个词推入数组?
【发布时间】:2022-11-17 09:36:13
【问题描述】:

我正在尝试创建一个游戏,每次您在文本字段中输入一个单词并按“播放”时,函数都会检查您输入的单词的数组,如果不存在,它将推送它,如果已经存在,它将产生一个错误。我不知道出了什么问题。已经花了好几个小时了。

我知道我需要创建一个空数组来存储单词,我需要遍历数组并编写一个 if 语句,基本上说如果数组项不等于字段值,则将其推入数组,否则显示错误消息.这似乎是一个简单的问题,但我无法弄清楚我做错了什么。

游戏的下一部分,我将只需要压入一个不在数组中的单词,它也必须以与数组中最后一个单词结束时相同的名称开头。但我还没有。

非常感谢你的帮助。

HTML

<body>
   
    <div id="main-container">
    
    <input type="text" id="field" class="button">
    <div id="message"></div>
    <button class="button" id="play">Play</button>
    
</div>


    <script src="index.js"></script>
</body>
JS

const field = document.querySelector('#field');
const message = document.querySelector('#message');
const playBtn = document.querySelector('#play')


let usedCities = ['york']

playBtn.addEventListener('click', function() {
    let fieldView = field.value;
    


    for (let i = 0; i < usedCities.length; i++) {
       if (usedCities[i] !== fieldView) {
        usedCities.push(fieldView) 
       } else {
        message.textContent = "ERROR"
       }
        
        
    }

    
})

这基本上是我得到的,但它不起作用。

太感谢了。

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:

    您可以使用 array.includes 检查数组值

    const usedCities = ['Copenhagen'];
    const fieldView = 'Copenhagen';
    
    if(!usedCities.includes(fieldView)){
        usedCities.push(fieldView)
    }
    
    console.log(usedCities);
    

    延伸阅读:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-26
      • 1970-01-01
      • 2021-06-03
      • 2016-05-05
      相关资源
      最近更新 更多