【问题标题】:How to check if a value exists in array with .includes?如何使用.includes检查数组中是否存在值?
【发布时间】:2022-02-08 21:10:16
【问题描述】:

我知道我们可以使用 .includes,但我一直在努力让它与我的数组一起使用。我想要的是让我的函数检查该值是否已经存在以及是否将其从数组中删除。

值是一个字符串。该值来自具有 .name 作为对象内属性的对象。

0: {id: 190217270, node_id: 'MDEwOlJlcG9zaXRvcnkxOTAyMTcyNzA=', name: '3-Bit-CNC-Starter-Pack'}

1: {id: 187179414, node_id: 'MDEwOlJlcG9zaXRvcnkxODcxNzk0MTQ=', name: 'inb-go'}

我映射了数据并为每个按钮分配了一个值 {d.name}

我正在使用一个按钮来获取下面这个函数的值

并将值添加到 'favs'。

const favs = [];

  function checkId(e) {
    if (e.target.value !== "")

      favs.push(e.target.value);

      localStorage.setItem("name", JSON.stringify(favs));
      console.log(favs);
      document.getElementById("favsarray").innerHTML = favs;
    }

控制台.log 最喜欢的

[
    "3-Bit-CNC-Starter-Pack",
    "3-Bit-CNC-Starter-Pack"
]

如何使用 .includes 检查该值是否已存在于数组中?

【问题讨论】:

  • favs.includes(someValueHere)?
  • 是的,但是函数在哪里?我在 .push 之前和之后都试过了,它不检查是否存在
  • 您要检查什么值?它存储在哪里?
  • 现在检查一下,我忘了把它编辑成代码。
  • 我不知道你想要它的功能。我不知道您要检查 什么。也不应该在那之后发生什么。您询问如何进行检查 - 显而易见的答案是我向您展示的代码。如果问题不是“我如何称呼.includes()”,那么您还没有说得足够清楚,也没有解释解决方案的预期内容。

标签: javascript arrays reactjs next.js


【解决方案1】:

推送前检查一下:

function checkId(e) {
    if (e.target.value !== ""
        && !favs.includes(e.target.value)) 
    {
        favs.push(e.target.value); 
        // other code here        
    }
}

【讨论】:

  • if 块中包含其他操作(保存到本地存储,设置innerHTML)可能也是有意义的。
  • 非常感谢您,这真是太棒了。
  • 您有从本地存储中删除单个值的经验吗?如您所见,我使用的是相同的密钥。但是,我似乎无法删除本地存储中的值。
  • @shar27 请看这个答案How to delete an item from localStorage
  • @shar27 作为一种很好的做法,每个主题最好有一个问题。请通过创建一个新帖子提出您的问题。如果您将有另一篇文章,它将需要更多的关注和帮助。
【解决方案2】:

["Sam", "Great", "Sample", "High"].includes("Sam"); // 是的

如果不是假的

【讨论】:

  • 请把它应用到我的函数中,否则它没有帮助。
猜你喜欢
  • 1970-01-01
  • 2011-01-27
  • 2016-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多