Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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 搜索并计算特定命令在数组中出现的次数_Javascript_Arrays_Multidimensional Array - Fatal编程技术网

Javascript 搜索并计算特定命令在数组中出现的次数

Javascript 搜索并计算特定命令在数组中出现的次数,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我搜索了一下,什么也没找到。这就是我的测试用例的样子: console.log(specificSearch([ [1, 2, 3], [4, 5, 6], [7, 8, 9] ], 'even')); // the maximum number of even numbers is in row - 2, which are 2 and 8 console.log(specificSearch([ ['o', 'o', 'o', 'x'], ['x',

我搜索了一下,什么也没找到。这就是我的测试用例的样子:

console.log(specificSearch([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
  ], 'even')); // the maximum number of even numbers is in row - 2, which are 2 and 8

  console.log(specificSearch([
  ['o', 'o', 'o', 'x'],
  ['x', 'x', 'o'],
  ['o', 'x'],
  ['x', 'x', 'x', 'x', 'x', 'x', 'x']
  ], 'x')); // the maximum number of x is in column - 4, which is 7 times appear
这是我到目前为止的代码:

function specificSearch(array, command) {

    var max = 0
    var even = 0
    for(var i = 0; i < array.length; i++){
      var evenCounter = 0
       for(var j = 0; j < array[i].length; j++){
          if(command === 'even'){
             if(array[i][j] % 2 == 0){
                evenCounter++
             }
          } 
       }

       if(command === 'even' ){
         if( max < evenCounter) {
           max = evenCounter
           even = i
         }
       }
    }
    return even
  }
函数特定搜索(数组、命令){
var max=0
var偶数=0
对于(var i=0;i
当我尝试搜索偶数时,如果它搜索数字,那么它必须返回第行和第几行,但另一方面,如果它不搜索数字,并且数组的长度不相同,那么它需要返回第几列和出现的次数。 这种情况下不需要内置函数,如正则表达式、映射、过滤器、索引,只需使用循环和数组操作,如push、pop、shift等

谢谢你的帮助,我只是一个尝试学习代码的noob:)

这种情况下不需要内置的功能

通常,当您想要将数组转换为您使用的一个值时

const specificSearch=(数组、比较器)=>
array.reduce((最高,项目)=>{
//减少到最大数量
const current=items.reduce(
//减少
//如果比较器为项目返回true,则将1添加到总和
(总和,项目)=>(比较器(项目)?总和+1:总和),
0,//以0的和开始
);
//如果当前结果高于目前为止的最高值
//返回电流,否则返回最高值
返回电流>最高?电流:最高;
},0/**以最高值0*/)开始;
console.log(
“即使在项目数组中,最大次数也是如此”,
特定搜索(
[[1, 2, 3], [4, 5, 6], [7, 8, 9]],
(x) =>x%2===0,
),
);
console.log(
“项目数组中“x”的最大值乘以”,
特定搜索(
[
[o',o',o',x'],
['x','x','o'],
['o','x'],
['x','x','x','x','x','x','x','x'],
],
(x) =>x==='x',
),

);您可以移交用于检查特定值的函数,并返回用于检查的布尔值

  • 对于
    偶数
    采取

    x => !(x % 2)`
    
  • 进行身份检查

    x => x === 'x'
    
然后,您可以收集行和列数组中的所有计数,然后获取最大值,并从
/
数组返回具有最大值的索引

结果是一个具有最大行/列计数的对象,以及出现最大计数的索引

顺便说一句,这个答案在Javascript中使用索引,从零开始。如果需要从一个开始,只需在每个索引中添加一个即可

函数特定搜索(数组,检查fn){
函数getIndexes(数组、值){
var i,指数=[];
对于(i=0;i!(x%2));
log(specificSearch(['o','o','o','x'],['x','x'],['o','x'],['x','x','x','x','x']],x=>x=='x')

。作为控制台包装{最大高度:100%!重要;顶部:0;}
请添加所需结果。是否要获取行/列和计数?如果行/列中的计数相等,会发生什么情况?