方法一:sort排序

即使用sort方法先对数组进行排序。

	function MaxAndMin (arr) {
		arr.sort((a, b) => {return a - b})
		return [arr[0], arr[arr.length - 1]]
	}
	let arr = [8,5,4,7,1,3,3,6]
	console.log(MaxAndMin(arr))  // [1,8]

方法二:假设法

即先让最大最小值都是第一个,然后遍历比较出最大最小值。

	function MaxAndMin (arr) {
		let max = arr[0]
		let min = arr[0]
		arr.forEach(v => {
			let c = v
			c > max ? max = c : null
			c < min ? min = c : null
		})
		return [min, max]
	}
	let arr = [8,5,4,7,1,3,3,6]
	console.log(MaxAndMin(arr))  // [1,8]

方法三:apply方法

即使用apply方法来获得最大最小值。

	function MaxAndMin (arr) {
		return [Math.min.apply(null, arr), Math.max.apply(null, arr)]
	}
	let arr = [8,5,4,7,1,3,3,6]
	console.log(MaxAndMin(arr))  // [1,8]

方法四:eval方法

本质还是使用Math.max和Math.min方法。

	function MaxAndMin (arr) {
		return [eval(`Math.min(${arr.join()})`), eval(`Math.max(${arr.toString()})`)]
	}
	let arr = [8,5,4,7,1,3,3,6]
	console.log(MaxAndMin(arr))  // [1,8]

eval(string):函数可计算某个字符串,并执行其中的的 JavaScript 代码。
string 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐