Javascript在数组中找到满足条件的第一项的最佳方法是什么

Javascript在数组中找到满足条件的第一项的最佳方法是什么,javascript,arrays,Javascript,Arrays,如果我有一个数组,数组如下所示 const ar = [ [2,6,7,9], [3,2,4,6], [7,8,9,10] ]; 返回包含数字3的第一个项目的智能方式是什么。 要获取数组[3,2,4,6]。 谢谢你 ar.find(innerAr -> innerAr.includes(3)) 应该有用。我将按照以下思路封装解决方案: const findInnerArrayWith = val => arr => arr.find(i

如果我有一个数组,数组如下所示

const ar = [
   [2,6,7,9],
   [3,2,4,6],
   [7,8,9,10]
];
返回包含数字3的第一个项目的智能方式是什么。 要获取数组
[3,2,4,6]
。 谢谢你

ar.find(innerAr -> innerAr.includes(3))
应该有用。我将按照以下思路封装解决方案:

 const findInnerArrayWith = val => arr => 
        arr.find(innerAr -> innerAr.includes(val))
在使用中,这将是:

 const findInnerArrayWith3 = findInnerArrayWith(3)
 const inner = findInnerArrayWith(ar)
或者,如果您想对数组运行多个查询(保持数组常量并改变要查找的对象),我可能会翻转参数

 const findIn = arr => val => 
        arr.find(innerAr -> innerAr.includes(val))

 const findInAr = findIn(ar)
 const inner = findInAr(3)
也许这有点超出了问题的范围——但是参数的顺序为构建代码提供了一些有趣的方法

参考资料

    • 类似于

      ar.find(innerAr -> innerAr.includes(3))
      
      应该有用。我将按照以下思路封装解决方案:

       const findInnerArrayWith = val => arr => 
              arr.find(innerAr -> innerAr.includes(val))
      
      在使用中,这将是:

       const findInnerArrayWith3 = findInnerArrayWith(3)
       const inner = findInnerArrayWith(ar)
      
      或者,如果您想对数组运行多个查询(保持数组常量并改变要查找的对象),我可能会翻转参数

       const findIn = arr => val => 
              arr.find(innerAr -> innerAr.includes(val))
      
       const findInAr = findIn(ar)
       const inner = findInAr(3)
      
      也许这有点超出了问题的范围——但是参数的顺序为构建代码提供了一些有趣的方法

      参考资料


      这是一个使用数组和的示例。简单地说,array.find查找与条件匹配的第一个元素。条件是array.indexOf用于检查数组中目标的成员资格

      const ar = [
         [2,6,7,9],
         [3,2,4,6],
         [7,8,9,10]
      ];
      const target = 3; // the target number you are looking
      
      let result = ar.find( a => a.indexOf(3) !== -1);
      

      这是一个使用数组和的示例。简单地说,array.find查找与条件匹配的第一个元素。条件是array.indexOf用于检查数组中目标的成员资格

      const ar = [
         [2,6,7,9],
         [3,2,4,6],
         [7,8,9,10]
      ];
      const target = 3; // the target number you are looking
      
      let result = ar.find( a => a.indexOf(3) !== -1);
      

      使用
      find()
      查找与条件匹配的第一项。在条件中使用
      includes()
      测试数组是否包含
      3
      。StackOverflow不是免费的编码服务。你应该会的。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参阅,并使用:)感谢您的评论,我对Javascripts有点陌生,我已经尝试过使用For-each,nest-two-For循环,都可以。我只想知道还有另一个聪明的方法,我不知道我的问题是反对的rules@YuJia我不知道这是否违反了规则本身,但一般来说,首选的方法是清楚地描述你想要完成的事情(你做到了),然后展示你尝试过的事情(没有做到)。“聪明”一词隐藏着你在寻找的不是“暴力”的东西,虽然有些人可能会解释这个信号,但不是每个人都会。下次想一想:“这是我的暴力方法”,但我想要更复杂一点的东西。使用
      find()
      查找第一个符合条件的项。在条件中使用
      includes()
      测试数组是否包含
      3
      。StackOverflow不是免费的编码服务。你应该会的。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参阅,并使用:)感谢您的评论,我对Javascripts有点陌生,我已经尝试过使用For-each,nest-two-For循环,都可以。我只想知道还有另一个聪明的方法,我不知道我的问题是反对的rules@YuJia我不知道这是否违反了规则本身,但一般来说,首选的方法是清楚地描述你想要完成的事情(你做到了),然后展示你尝试过的事情(没有做到)。“聪明”一词隐藏着你在寻找的不是“暴力”的东西,虽然有些人可能会解释这个信号,但不是每个人都会。下次想想:“这是我的暴力方法”,但我想要更复杂一点的东西。