JavaScript in_array 函数

在 JavaScript 中,如果我们希望遍历从数组中找到某个字符串或数字,我们将不得不使用该includes()方法。在引入这个约定之前,我们通常for通过在数组索引上启动一个循环来完成搜索任务。

pass by value因为和之间存在差异pass by reference,所以该includes()方法没有给我们正确的答案。

我们将学习includes()方法的使用,我们将尝试includes()手动创建方法功能,并了解如何创建函数以防我们在本文中进行对象之间的检查。

目录

1.使用includes()方法从食谱中搜索元素

2.使用for循环检查元素是否存在

3. 使用函数从对象中检查对象


1.使用includes()方法从食谱中搜索元素

includes()方法通常在开头采用数组名称(我们将在其中搜索我们的元素),然后是dot(.). 在下一部分中,我们将提到我们的元素。

代码片段:

var name = ['Rayan', 'Emily', 'Sarah'];
var check = 'Rayan';
console.log(name.includes(check));

输出: 

此方法以布尔值返回结果,因此我们的输出将被控制台输出为trueor false。 

2.使用for循环检查元素是否存在

在此示例中,我们将创建一个数组和一个变量来存储要搜索的元素。我们将创建一个简单的for循环来检查我们的元素并在trueor中返回结果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 有两种数据类型,primitiveobjectsprimitive数据遵循,因此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对象值的函数来获得我们想要的输出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值