首页 > 解决方案 > 检查数组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 时它们都返回

标签: javascript

解决方案


除非对象具有相同的引用,否则对象将不相等,即使它们具有相同的键/值对。您可以在使用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'}))


推荐阅读