gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 17:53:46 27 4
gpt4 key购买 nike

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com