javascript - 使用map返回每个数组中的最大数

标签 javascript arrays dictionary functional-programming higher-order-functions

function each(coll, f) {
  if (Array.isArray(coll)) {
    for (var i = 0; i < coll.length; i++) {
      f(coll[i], i);
    }
  } else {
    for (var key in coll) {
      f(coll[key], key);
    }
  }
}

function map(array, f) {
  var acc = [];
  each(array, function(element, i) {
    acc.push(f(element, i));
  });
  return acc;
}

function max(numbers) {
  var maximum = numbers[0];
  each(numbers,function(x){
    if(x>maximum){
      maximum = x;}
  });
  return maximum;
}

function maximums(arrays){
  return map(arrays, function(x){
    return max(arrays);
  })
}

maximums([1,2,3],[5,6,7])

我不太懂 map 。我在数组函数中写了一个最大数量,我想将其实现为映射。我知道我没有用 return max(arrays) 返回正确的东西,但我也尝试过 return max(arrays[x]) 来强调我想迭代数组的整个参数。 return max(arrays) ==> [3,3,3],返回一个数组中最大的数字 3 次,我也不明白为什么。

最佳答案

您需要从x获取最大值

function maximums(arrays) {
    return map(arrays, function (x) {
        return max(x);
        //         ^                         
    });
}

并使用数组数组调用函数

maximums([[1, 2, 3], [5, 6, 7]]);
//       ^                    ^

function each(coll, f) {
    if (Array.isArray(coll)) {
        for (var i = 0; i < coll.length; i++) {
            f(coll[i], i);
        }
    } else {
        for (var key in coll) {
            f(coll[key], key);
        }
    }
}

function map(array, f) {
    var acc = [];
    each(array, function (element, i) {
        acc.push(f(element, i));
    });
    return acc;
}

function max(numbers) {
    var maximum = numbers[0];
    each(numbers, function (x) {
        if (x > maximum) {
            maximum = x;
        }
    });
    return maximum;
}

function maximums(arrays) {
    return map(arrays, function (x) {
        return max(x);
    })
}

console.log(maximums([[1, 2, 3], [5, 6, 7]]));

关于javascript - 使用map返回每个数组中的最大数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41047450/

相关文章:

javascript - 更新通过appendChild创建的元素

javascript - 将以@开头的任何单词加粗

javascript - FindAndUpdate 如何检查文档是否真的更新了

java - 为什么这个不会显示?

Python:将字典中的所有值提取到赋值语句中?

python - 从 json 文件中删除所有 xmlns 标记

javascript jquery 函数这有点错误吗?

javascript - 即使条件满足后,while 循环也不会停止

Java 字节数组和带有套接字的图像

c++ - 迭代 vector/ map 数据结构 C++