Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 满足if条件时数组和和和的数组中断_Javascript_Arrays_If Statement_Reducers - Fatal编程技术网

Javascript 满足if条件时数组和和和的数组中断

Javascript 满足if条件时数组和和和的数组中断,javascript,arrays,if-statement,reducers,Javascript,Arrays,If Statement,Reducers,我有一个像这样的js数组 const test_arr = [ [ 20, 7, 23, 19, 10, 15, 25 ], [ 20, 7, 23, 19, 10, 15, 8 ], [ 20, 7, 23, 19, 10, 15, 13 ], [ 20, 7, 23, 19, 10, 25, 8 ], [ 20, 7, 23, 19, 10, 25, 13 ], [ 20, 7, 23, 19, 10, 8, 13 ], [ 20, 7, 23, 19, 15, 25,

我有一个像这样的js数组

const test_arr = [ [ 20, 7, 23, 19, 10, 15, 25 ],
 [ 20, 7, 23, 19, 10, 15, 8 ],
  [ 20, 7, 23, 19, 10, 15, 13 ],
  [ 20, 7, 23, 19, 10, 25, 8 ],
  [ 20, 7, 23, 19, 10, 25, 13 ],
  [ 20, 7, 23, 19, 10, 8, 13 ],
  [ 20, 7, 23, 19, 15, 25, 8 ],
  [ 20, 7, 23, 19, 15, 25, 13 ],
  [ 20, 7, 23, 19, 15, 8, 13 ],
  [ 20, 7, 23, 19, 25, 8, 13 ],
  [ 20, 7, 23, 10, 15, 25, 8 ],
  [ 20, 7, 23, 10, 15, 25, 13 ],
  [ 20, 7, 23, 10, 15, 8, 13 ],
  [ 20, 7, 23, 10, 25, 8, 13 ],
  [ 20, 7, 23, 15, 25, 8, 13 ],
  [ 20, 7, 19, 10, 15, 25, 8 ],
  [ 20, 7, 19, 10, 15, 25, 13 ],
  [ 20, 7, 19, 10, 15, 8, 13 ],
  [ 20, 7, 19, 10, 25, 8, 13 ],
  [ 20, 7, 19, 15, 25, 8, 13 ],
  [ 20, 7, 10, 15, 25, 8, 13 ],
  [ 20, 23, 19, 10, 15, 25, 8 ],
  [ 20, 23, 19, 10, 15, 25, 13 ],
  [ 20, 23, 19, 10, 15, 8, 13 ],
  [ 20, 23, 19, 10, 25, 8, 13 ],
  [ 20, 23, 19, 15, 25, 8, 13 ],
  [ 20, 23, 10, 15, 25, 8, 13 ],
  [ 20, 19, 10, 15, 25, 8, 13 ],
  [ 7, 23, 19, 10, 15, 25, 8 ],
  [ 7, 23, 19, 10, 15, 25, 13 ],
  [ 7, 23, 19, 10, 15, 8, 13 ],
  [ 7, 23, 19, 10, 25, 8, 13 ],
  [ 7, 23, 19, 15, 25, 8, 13 ],
  [ 7, 23, 10, 15, 25, 8, 13 ],
  [ 7, 19, 10, 15, 25, 8, 13 ],
  [ 23, 19, 10, 15, 25, 8, 13 ] ]
var组合_之前=[20,7,23,19,10,15,25,8,13]
这些是从九个选项中选择七个选项的结果

我只想在元素之和为100时返回一些元素


如果条件满足,如何生成reducer?

您可以使用
filter
对数组进行筛选,使用
reduce
对嵌套数组求和,并在筛选器中检查哪个数组和等于100
const test_arr=[[20,7,23,19,10,15,25],
[ 20, 7, 23, 19, 10, 15, 8 ],
[ 20, 7, 23, 19, 10, 15, 13 ],
[ 20, 7, 23, 19, 10, 25, 8 ],
[ 20, 7, 23, 19, 10, 25, 13 ],
[ 20, 7, 23, 19, 10, 8, 13 ],
[ 20, 7, 23, 19, 15, 25, 8 ],
[ 20, 7, 23, 19, 15, 25, 13 ],
[ 20, 7, 23, 19, 15, 8, 13 ],
[ 20, 7, 23, 19, 25, 8, 13 ],
[ 20, 7, 23, 10, 15, 25, 8 ],
[ 20, 7, 23, 10, 15, 25, 13 ],
[ 20, 7, 23, 10, 15, 8, 13 ],
[ 20, 7, 23, 10, 25, 8, 13 ],
[ 20, 7, 23, 15, 25, 8, 13 ],
[ 20, 7, 19, 10, 15, 25, 8 ],
[ 20, 7, 19, 10, 15, 25, 13 ],
[ 20, 7, 19, 10, 15, 8, 13 ],
[ 20, 7, 19, 10, 25, 8, 13 ],
[ 20, 7, 19, 15, 25, 8, 13 ],
[ 20, 7, 10, 15, 25, 8, 13 ],
[ 20, 23, 19, 10, 15, 25, 8 ],
[ 20, 23, 19, 10, 15, 25, 13 ],
[ 20, 23, 19, 10, 15, 8, 13 ],
[ 20, 23, 19, 10, 25, 8, 13 ],
[ 20, 23, 19, 15, 25, 8, 13 ],
[ 20, 23, 10, 15, 25, 8, 13 ],
[ 20, 19, 10, 15, 25, 8, 13 ],
[ 7, 23, 19, 10, 15, 25, 8 ],
[ 7, 23, 19, 10, 15, 25, 13 ],
[ 7, 23, 19, 10, 15, 8, 13 ],
[ 7, 23, 19, 10, 25, 8, 13 ],
[ 7, 23, 19, 15, 25, 8, 13 ],
[ 7, 23, 10, 15, 25, 8, 13 ],
[ 7, 19, 10, 15, 25, 8, 13 ],
[ 23, 19, 10, 15, 25, 8, 13 ] ];
const result=test_arr.filter(arr=>arr.reduce((a,b)=>a+b,0)==100);
控制台日志(结果)
const test_arr=[[20,7,23,19,10,15,25],
[ 20, 7, 23, 19, 10, 15, 8 ],
[ 20, 7, 23, 19, 10, 15, 13 ],
[ 20, 7, 23, 19, 10, 25, 8 ],
[ 20, 7, 23, 19, 10, 25, 13 ],
[ 20, 7, 23, 19, 10, 8, 13 ],
[ 20, 7, 23, 19, 15, 25, 8 ],
[ 20, 7, 23, 19, 15, 25, 13 ],
[ 20, 7, 23, 19, 15, 8, 13 ],
[ 20, 7, 23, 19, 25, 8, 13 ],
[ 20, 7, 23, 10, 15, 25, 8 ],
[ 20, 7, 23, 10, 15, 25, 13 ],
[ 20, 7, 23, 10, 15, 8, 13 ],
[ 20, 7, 23, 10, 25, 8, 13 ],
[ 20, 7, 23, 15, 25, 8, 13 ],
[ 20, 7, 19, 10, 15, 25, 8 ],
[ 20, 7, 19, 10, 15, 25, 13 ],
[ 20, 7, 19, 10, 15, 8, 13 ],
[ 20, 7, 19, 10, 25, 8, 13 ],
[ 20, 7, 19, 15, 25, 8, 13 ],
[ 20, 7, 10, 15, 25, 8, 13 ],
[ 20, 23, 19, 10, 15, 25, 8 ],
[ 20, 23, 19, 10, 15, 25, 13 ],
[ 20, 23, 19, 10, 15, 8, 13 ],
[ 20, 23, 19, 10, 25, 8, 13 ],
[ 20, 23, 19, 15, 25, 8, 13 ],
[ 20, 23, 10, 15, 25, 8, 13 ],
[ 20, 19, 10, 15, 25, 8, 13 ],
[ 7, 23, 19, 10, 15, 25, 8 ],
[ 7, 23, 19, 10, 15, 25, 13 ],
[ 7, 23, 19, 10, 15, 8, 13 ],
[ 7, 23, 19, 10, 25, 8, 13 ],
[ 7, 23, 19, 15, 25, 8, 13 ],
[ 7, 23, 10, 15, 25, 8, 13 ],
[ 7, 19, 10, 15, 25, 8, 13 ],
[ 23, 19, 10, 15, 25, 8, 13 ] ];
var resultar=[];
对于(变量i=0;ilog(resultar)
此时,您可以采用不同的方法,采用所有组合,只返回按长度和总和匹配条件的组合

函数getCombinations(数组、长度、和){ 功能iter(阵列、温度){ 如果(温度长度===长度){ 如果(温度降低((a,b)=>a+b)==总和){ 结果:推送(温度); } 返回; } 如果(!array.length | | array.length+temp.length
作为控制台包装{max height:100%!important;top:0;}
发布的问题似乎根本不包含解决问题的方法。StackOverflow希望您能这样做,因为您的尝试有助于我们更好地了解您的需求。请编辑问题以显示您已尝试的内容,以便说明您遇到的具体障碍。有关详细信息,请参阅并使用。好的,我稍后不会删除我的尝试。~当然,但时间限制存在,请稍等。太晚了,使用filter by is Artyom更好!