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'}))
推荐阅读
- spring-boot - Spring Security 未获取 PostMan 客户端授权参数
- python - Python中XML中的父节点插入不像我希望的那样工作
- c++ - 为什么 char 在 C++ 中不被视为数字?
- jenkins - 动态参数值取决于 Jenkins 代理标签
- python-3.x - Python 3.6:“c”参数看起来像单个数字 RGB 或 RGBA 序列
- c++ - C++ QT Creator 为 QTextEdit::verticalSlideBar 创建槽函数?
- android - TransactionTooLargeException when selecting many files using ACTION_GET_CONTENT intent
- python-3.x - I am trying to create a program with class called Product, and the object returns the discount of the price for the number of items purchased
- javascript - How do I return a specific data from object
- javascript - SNOWFLAKE 中的 ORACLE %TYPE 替换