使用 Array.includes Array.every Array.some 处理多重循环条件

Array.includes

一个最常见的循环例子:

function demo(fruit) {
	if(fruit === 'apple' || fruit === 'strawberry'){
		console.log('red fruit')
	}
}

这是一段没有任何问题的,内部含有条件判断的函数,然而如果我们有很多种类的水果需要匹配更多的水果颜色,这时我们如果还按照传统的条件判断,就需要写更多的 || 来扩展我们条件语句。

我们可以使用 Array.includes(arr) 重新写以上的条件语句。

function demo(fruit){
	const redfruits = ['apple', 'strawberry', 'cherry', 'cranberries']
	
	if(redfruits.includes(fruit)) {
		console.log('red')
	}
}

这里我们使用一个辅助数组将 同一种颜色的水果放在了一个数组当中,这样在使用 if 条件判断的时候就简介的多了。

当有多种颜色需要匹配多种水果的时候我们同样可以使用辅助对象来实现我们的 if 条件的简写。

function demo (fruit) {
	let fruitColor = {
		red: ['apple', 'strawberry', 'cherry', 'cranberries'],
		green: ['watermelon', 'pear']
	}
	object.keys(fruitColor).forEach(color => {
		if(color.includes(fruit)) {
			console.log('red')
		}
	})
}

Array.every /Array.some 处理全部满足和部分满足

  • 检查是否所有的水果都是红色。
const fruits = [
	{ name: 'apple', color: 'red' },
    { name: 'banana', color: 'yellow' },
    { name: 'grape', color: 'purple' }
]

function demo () {
	// every 返回是否同时满足函数内条件
	const isAllRed = fruits.every(fruit => fruit.color === 'red')

	consolE.log(isAllRed) // false
}
  • 检查是否至少有一个水果是红色。
	function demo () {
		const isAnyRed = fruits.some(fruit => fruit.color === 'red')
		console.log(isAnyRed) //true
	}

你可能感兴趣的:(JS,语法,js)