js 数组的filter过滤器

过滤数组,

返回一个新数组,包含符合条件的所有元素,
如果没有符合条件的元素,则返回空数组。

注意

filter 方法会遍历数组的每一项,并对每一项应用回调函数进行判断。当回调函数返回 true 时,当前项会被包含在新数组中;当回调函数返回 false 时,当前项会被过滤掉,不包含在新数组中。

无论回调函数返回 true 还是 falsefilter 方法会遍历完整个数组。它会对数组中的每一项都应用回调函数,并根据回调函数的返回值决定是否将当前项包含在新数组中。

当回调函数返回 true 时,filter 方法会将当前项加入到新数组中,并继续遍历下一项。当回调函数返回 false 时,filter 方法会直接跳过当前项,不将其加入到新数组中,并继续遍历下一项。

只有当遍历完整个数组后,filter 方法才会返回新数组,其中包含满足条件的项。

所以,无论遇到 true 还是 falsefilter 方法都会遍历完整个数组,并返回满足条件的项组成的新数组。

filter过滤器,返回的是一个boolean,如下,
a、返回true时, 函数内部,会自动将这次回调的n,加入到新的数组中
b、返回false时,函数内部,会过滤掉这次的n
示例:
	const nums = [
	{ id: 20, age:18, name: 'Captain Piett' },
	{ id: 24, age:30, name: 'General Veers' },
	{ id: 56, age:58, name: 'Admiral Ozzel' },
	{ id: 88, age:68, name: 'Commander Jerjerrod' }
	];
	// 对数组进行过滤,筛选出,年龄大于18岁的数据
	let newArr = nums.filter(function (item) {
		return item.age < 58
	})
	console.log(newArr);
	// [ {id: 20, age: 18, name: 'Captain Piett'}, {id: 24, age: 30, name:	'General Veers'} ]