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)
也许这有点超出了问题的范围——但是参数的顺序为构建代码提供了一些有趣的方法
参考资料
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我不知道这是否违反了规则本身,但一般来说,首选的方法是清楚地描述你想要完成的事情(你做到了),然后展示你尝试过的事情(没有做到)。“聪明”一词隐藏着你在寻找的不是“暴力”的东西,虽然有些人可能会解释这个信号,但不是每个人都会。下次想想:“这是我的暴力方法”,但我想要更复杂一点的东西。