题解 | #数组最大值#
数组最大值
https://www.nowcoder.com/practice/7b556cd6c4184e7799199f43f18fa5b1
一个绕远路但很有趣的思路:
- 用filter过滤出唯一满足条件的元素组成新数组,直接取[0]
- 条件:对于某个元素,如果原数组中存在一个元素比它大,那么它不是最大值
需要注意的是,forEach中return false只会退出循环,不会直接返回给filter,所以加了一个标记位
function _max(array) {
return array.filter((value) => {
let is_max = true;
array.forEach((element) => {
if (element > value) {
is_max = false;
return false;
}
});
return is_max;
})[0];
}
