我需要使用几个下拉列表过滤对象数组,我的问题是如果我从下拉列表中选择 All( value = null(,那么过滤器不起作用并返回一个空数组。这是我的代码:
let filterByName = nameValue === null ?
function( result ) { return true; } :
function( result ) { return result.name === nameValue };
let filterByAge = ageValue === null ?
function( result ) { return true; } :
function( result ) { return result.age === ageValue };
let filterByCity = cityValue === null ?
function( result ) { return true; } :
function( result ) { return result.city=== cityValue };
let filteredResults = formattedResult
.filter( filterByName )
.filter( filterByAge )
.filter( filterByCity );
.HTML
<select>
<option value=null>All</option>
<% names.forEach( function( name ) { %>
<option value="<%= name%>"><%=name%></option>
<% }) %>
</select>
以此类推,用于其他下拉列表。有什么想法吗?
谢谢!
正如一位朋友建议的那样,只需将值更改为" "即可! :)
<select>
<option value="">All</option>
<% names.forEach( function( name ) { %>
<option value="<%= name%>"><%=name%></option>
<% }) %>
</select>