JavaScript in_array 函数

  1. 使用 includes() 方法从数组中搜索元素
  2. 使用 for 循环检查元素是否存在
  3. 使用函数从对象中检查对象
JavaScript in_array 函数

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

因为按值传递按引用传递之间存在差异,includes() 方法并没有给我们正确的答案。

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

使用 includes() 方法从数组中搜索元素

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

代码片段:

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

输出:

使用 includes() 方法从数组中搜索元素

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

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

在此示例中,我们将创建一个数组和一个变量来存储要搜索的元素。我们将创建一个简单的 for 循环来检查我们的元素并以 truefalse 返回结果。

代码片段:

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);

输出:

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

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

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]a,则值将与 [1,2] 相同。你还会发现数据类型对于两者来说都是对象,但 ab 都持有不同的引用,而且我们知道,对象支持按引用传递

我们不能通过选择传递参考。我们在这里所做的是,在我们的 inArray 函数中,我们已经确定 b 对象中是否有任何对象类型数据。

如果结果为真,我们使用 Compare 函数,我们明确检查 b[i] 对象值和 a 对象值以获得我们更喜欢的输出。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
Anika Tabassum Era avatar Anika Tabassum Era avatar

Era is an observer who loves cracking the ambiguos barriers. An AI enthusiast to help others with the drive and develop a stronger community.

LinkedIn Facebook

相关文章 - JavaScript Array