javascript - 检查数组中是否存在值 javascript

标签 javascript

我有这个数据

    var selectedValue = [];
    selectedValue.push({0:'Data A'});
    selectedValue.push({1:'Data B'});

我想检查我的新数据是否已存在于该数组中。我正在尝试使用 includes()

function inArrayCheck(val) {
  console.log(selectedValue.includes(val));
}

然后我尝试另一种方式

function inArrayCheck(val) {
    if (Object.values(selectedValue).indexOf(val) > -1) {
   console.log(val);
    }
}

他们都回来了false当我输入数据A

最佳答案

对象不会相等,除非它们具有相同的引用,即使它们具有相同的键/值对。您可以在使用 JSON.stringify 将对象转换为字符串后进行比较,但功能有限,例如对象中元素的顺序和字符串的大小写很重要:

var selectedValue = [];
selectedValue.push({0:'Data A'});
selectedValue.push({1:'Data B'});


function inArrayCheck(val) {
  return selectedValue.some(obj => JSON.stringify(obj) === JSON.stringify(val))
}

console.log(inArrayCheck({0:'Data A'}))

关于javascript - 检查数组中是否存在值 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60354517/

相关文章:

javascript - 无法在浏览器中显示图像。这是在canvas标签中动态添加的。但可以在inspect元素中看到

javascript - 按值移动数组,保持排序

javascript - 发送 qx.io.request.Xhr 请求,请求中包含数组

javascript - 从 Bootstrap 模式加载的远程页面调用 AngularJS 函数

javascript - Jquery悬停功能不起作用

javascript - 在回调中使用带参数的函数

javascript - 获取光谱颜色选择器的父元素 ID

javascript - 如何将 wro4j 与 Closure 库和编译器一起使用?

java - 有没有办法获取浏览器生成的 HTML 和 CSS

javascript - ajax 无法在 codeigniter 中工作,无法在 Controller 中发布或启动该方法