我有这个数据
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/