Javascript Array.prototype.filter未按预期工作
我正在使用星球大战API制作一个示例应用程序,需要使用html5中的选择字段和按钮过滤数据。我有一个名为Javascript Array.prototype.filter未按预期工作,javascript,algorithm,filter,async-await,es6-promise,Javascript,Algorithm,Filter,Async Await,Es6 Promise,我正在使用星球大战API制作一个示例应用程序,需要使用html5中的选择字段和按钮过滤数据。我有一个名为filterBySelections的函数,它使用array.filter。职能应: 获取选择选项 如果选择了某个选项,则从参数对象中查找所有选项 我尝试使用array.includes来运行筛选方法 使用arr.filter中的数组[索引] CR90轻巡洋舰 后掠翼 贝尔布拉布 星际战斗机 绝地拦截器 歼星舰 贸易巡洋舰 太阳帆船 共和国攻击巡洋舰 A翼 B翼 纳布·菲瑟 千年鹰号
filterBySelections
的函数,它使用array.filter
。职能应:
- 获取选择选项
- 如果选择了某个选项,则从参数对象中查找所有选项
array.includes
来运行筛选方法
使用arr.filter
中的数组[索引]
CR90轻巡洋舰
后掠翼
贝尔布拉布
星际战斗机
绝地拦截器
歼星舰
贸易巡洋舰
太阳帆船
共和国攻击巡洋舰
A翼
B翼
纳布·菲瑟
千年鹰号
等于
return array[index].name == opt2.textContent;
由于opt1
是真实的,因此&&
的计算结果为右侧。。。这可能不是你想要的。您已经在上面的if语句中介绍了这两种情况,所以
return true;
或者只使用一些布尔代数:
mylist = obj.filter((data) => data.name === opt1.textContent || data.name === opt2.textContent);
等于
return array[index].name == opt2.textContent;
由于opt1
是真实的,因此&&
的计算结果为右侧。。。这可能不是你想要的。您已经在上面的if语句中介绍了这两种情况,所以
return true;
或者只使用一些布尔代数:
mylist = obj.filter((data) => data.name === opt1.textContent || data.name === opt2.textContent);
为什么
array[index]
而不是data
?我在搜索mdn和w3schools文档时过度思考了很多内容。为什么array[index]
而不是data
?我在搜索mdn和w3schools文档时过度思考了很多内容