如何在JavaScript中使用布尔数组过滤数组元素
用布尔数组过滤数组的实现方法
你可以通过以下几种方式实现用filterVals布尔数组过滤cities数组:
方法一:使用filter方法
filter方法的回调函数可以获取当前元素的索引,直接对应filterVals的索引值进行判断:
let cities = ["Istanbul", "Ankara", "Izmir"]; let filterVals = [true, false, false]; const filteredCities = cities.filter((_, index) => filterVals[index]); console.log(filteredCities); // 输出: ["Istanbul"]
注:这里用下划线_表示不需要使用的当前元素参数,仅保留索引用于判断
方法二:使用reduce方法
通过reduce遍历数组,收集符合条件的元素:
let cities = ["Istanbul", "Ankara", "Izmir"]; let filterVals = [true, false, false]; const filteredCities = cities.reduce((result, city, index) => { if (filterVals[index]) { result.push(city); } return result; }, []); console.log(filteredCities); // 输出: ["Istanbul"]
注意事项
确保两个数组长度一致,否则超出filterVals长度的元素会因对应索引值为undefined(被视为false)而被过滤掉。
内容的提问来源于stack exchange,提问作者abduygur
相关产品推荐
相关产品推荐

