【问题标题】:How to check if a two dimensional array includes a string?如何检查二维数组是否包含字符串?
【发布时间】:2018-07-10 07:50:34
【问题描述】:

我有一个二维数组arr[cols][rows]。 我想知道 cols 是否包含字符串“hello”。 如何使用.includes("hello") 方法检查。

请注意,我正在尝试使用计数器i 在循环中检查这一点。所以我必须做类似arr[i][0].includes("hello");

【问题讨论】:

  • 你这样做了吗?你得到了什么?
  • 我假设您想知道[col] 是否在任何[row] 中包含"hello"?您在j 循环中添加一个标志(假设您使用i 表示列,使用j 表示行。)
  • 添加更多信息,例如 - 子数组是否具有统一长度?必须支持多少个维度?
  • 是的,子数组有统一的长度。必须支持 2 维,这意味着,有一个包含数组的数组,而数组又包含两个元素。

标签: javascript arrays multidimensional-array dynamic-arrays


【解决方案1】:

您可以将array.prototype.somearray.prototype.includes 一起使用。应该是:

var datas= [
  ["aaa", "bbb"],
  ["ddd", "eee"]
];

function exists(arr, search) {
    return arr.some(row => row.includes(search));
}

console.log(exists(datas, 'ddd'));
console.log(exists(datas, 'xxx'));

【讨论】:

  • 这行得通。你能解释一下 exists 函数内部发生了什么吗?
  • 如 MDN 上所述 (developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…),some() 方法测试数组中的至少一个元素是否通过了提供的函数实现的测试。这意味着如果每一行都通过了测试,则数组将通过测试(返回 true),这就是 row.includes(search) 所做的,如果该行包含搜索查询,则返回 true。希望这会有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 2012-08-11
  • 1970-01-01
  • 2022-06-30
  • 1970-01-01
  • 2010-11-16
  • 2021-12-14
相关资源
最近更新 更多