如何使用下拉列表过滤对象数组



我需要使用几个下拉列表过滤对象数组,我的问题是如果我从下拉列表中选择 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>

最新更新