【问题标题】:Javascripct 2d array IndexOfJavascripct 二维数组 IndexOf
【发布时间】:2020-11-08 06:00:40
【问题描述】:

我有一个这样的二维数组

[[1,2],[3,4],[5,6],[7,8],[9,10]]

如何使用 array.IndexOf() 检查元素出现在哪个外部元素中。 例如,如果我输入 3,它应该返回 1(父数组的位置)。

【问题讨论】:

  • array.IndexOf() 在您的情况下不起作用,您必须编写手动函数然后调用它并获取索引。
  • 这能回答你的问题吗? Javascript 2d array indexOf

标签: javascript arrays multidimensional-array


【解决方案1】:

.indexOf() 方法适用于您想要在数组中查找原始值的索引(或您已经引用过的值)。相反,您可以使用.findIndex()。使用 .findIndex() 将允许您指定一个函数,当数组匹配您的搜索条件时,您可以从该函数返回 true:

const arr = [[1,2],[3,4],[5,6],[7,8],[9,10]]

const search = 3;
const idx = arr.findIndex(inner => inner.includes(search));
console.log(idx);

由于您要求在问题中使用indexOf(),您可以通过检查是否返回有效索引来将上述函数更改为使用indexOf() 而不是.includes()

const arr = [[1,2],[3,4],[5,6],[7,8],[9,10]]

const search = 3;
const idx = arr.findIndex(inner => inner.indexOf(search) >= 0);
console.log(idx);

【讨论】:

    【解决方案2】:

    Array.indexOf 适用于像[1,2,3] 这样的平面数组,但您可以使用接受过滤函数的Array.findIndex

    const arr = [
      [1, 2],
      [3, 4],
      [5, 6],
      [7, 8],
      [9, 10]
    ]
    const num = 3;
    const index = arr.findIndex(([a, b]) => a === num || b === num);
    console.log(index)

    【讨论】:

      猜你喜欢
      • 2014-09-16
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2019-01-23
      • 2017-01-19
      相关资源
      最近更新 更多