今天更新两道题
题目1: 最小值总和
js
// 给定一个二维数组, 在每一组中获取最小值并求和
const list = [
[1, 3, 7, 2, 9, 100, 2],
[98, 6, 89, 3, 1, 10],
[20, 100, 8]
]
// 方案一
function getSumOfMin(arr) {
return arr.reduce((a, b) => a + Math.min(...b), 0)
}
/**
* 简析
* 通过Math.min获取最小值, 然后通过reduce将每组的最小值累加
*/
const result = getSumOfMin(list)
console.log(result)
// 方案2
function getSumOfMin2(arr) {
let result = 0
arr.map((item) => {
let min = Infinity
item.map((childItem) => {
if (min > childItem) {
min = childItem
}
})
result += min
})
return result
}
/**
* 简析
* 对数组进行遍历, 通过给定一个无穷大的最小值, 将这个最小值与每组的每个值相比, 拿到每组的最小值, 然后...
*/
const result2 = getSumOfMin(list)
console.log(result2)
题目2: 自缚手脚_四七
js
// 这个题有点意思 不过看看了解下就得了
/**
* 简单的规则:
* 您的函数应接受输入4和7。
* 如果输入4,函数应返回7。如果输入7,函数应返回4。
* 输入的其他任何内容都应返回 0。
* 只有一个要求,您的函数不能包含if语句,switch语句或三元运算符(或eval函数,因为您可以绕开if要求来使用它)。
* 有一些非常简单的方法可以解决此问题,但是我鼓励您尝试并尽可能发挥创造力。
* 祝好运!
*/
// 方案1
function fourSeven(val) {
const a = {
4: 7,
7: 4
}
console.log(a[val] || 0) // 直接在这打印了...
return a[val] || 0
}
fourSeven(4)
fourSeven(7)
fourSeven(100)
// 方案2
function fourSeven2(val) {
while (val === 4) {
console.log(7)
return 7
}
while (val === 7) {
console.log(4)
return 4
}
console.log(0)
return 0
}
fourSeven(4)
fourSeven(7)
fourSeven(100)