在 JavaScript 中,如果我们希望遍历从数组中找到某个字符串或数字,我们将不得不使用该includes()
方法。在引入这个约定之前,我们通常for
通过在数组索引上启动一个循环来完成搜索任务。
pass by value
因为和之间存在差异pass by reference
,所以该includes()
方法没有给我们正确的答案。
我们将学习includes()
方法的使用,我们将尝试includes()
手动创建方法功能,并了解如何创建函数以防我们在本文中进行对象之间的检查。
目录
1.使用includes()方法从食谱中搜索元素
该includes()
方法通常在开头采用数组名称(我们将在其中搜索我们的元素),然后是dot(.)
. 在下一部分中,我们将提到我们的元素。
代码片段:
var name = ['Rayan', 'Emily', 'Sarah'];
var check = 'Rayan';
console.log(name.includes(check));
输出:
此方法以布尔值返回结果,因此我们的输出将被控制台输出为true
or false
。
2.使用for循环检查元素是否存在
在此示例中,我们将创建一个数组和一个变量来存储要搜索的元素。我们将创建一个简单的for
循环来检查我们的元素并在true
or中返回结果false
。
代码片段:
var a = 2;
var b = [1,2,3];
var verdict;
for(var i=0;i<b.length;i++){
if(b[i]===a){
verdict = true;
break;
}
else{
verdict = false;
}
}
console.log(verdict);
输出:
3. 使用函数从对象中检查对象
JavaScript 有两种数据类型,primitive
和objects
. primitive
数据遵循,因此pass by value
我们更容易执行上述任务,但在 的情况下objects
,传递引用用于比较任何内容。
如果我们遵循一般的检查方式或includes()
方法,我们将无法得出完美的答案。
代码片段:
function Compare(b, a) {
if (b.length != a.length) return false;
var length = a.length;
for (var i = 0; i < length; i++) {
if (b[i] !== a[i]) return false;
}
return true;
}
function inArray(a, b) {
var length = b.length;
for(var i = 0; i < length; i++) {
if(typeof b[i] == 'object') {
if(Compare(b[i], a)) return true;
} else {
if(b[i] == a) return true;
}
}
return false;
}
var a = [1,2];
var b = [[1,2],3,4];
console.log(inArray(a,b));
输出:
如果您排除特定的b[i]
and a
,则值将与 相同[1,2]
。你还会发现一个数据类型object
对两者都适用,但两者都a
持有b
不同的引用,而且我们知道,对象启用pass by reference
.
我们不能通过选择传递参考。我们在这里所做的是,在我们的inArray
函数中,我们已经弄清楚对象内是否有任何对象类型数据b
。
如果结果为真,我们会Compare
使用明确检查b[i]
对象值和a
对象值的函数来获得我们想要的输出。