function query(key,list){ // 我這里直接return(也可賦給變量return變量出去) return list.filter(item => { // 如果list(name)包含key(輸入框) => true if(item.includes(key)){ // 返回item return item; } }) } var list = ['北京市','北海道','上海','上帝'];//數據列表 query('北',list) //["北京市", "北海道"]
使用到了兩個數組方法
1.includes()
解釋:該方法用來判斷一個數組是否包含一個指定的值,如果是返回 true,否則false。
JavaScript版本:ECMAScript 6
用法:arr.includes(searchElement,fromIndex)
searchElement:必須。需要查找的元素值。
fromIndex:可選。從該索引處開始查找 searchElement。如果為負值,則按升序從 array.length + fromIndex 的索引開始搜索。默認為 0。
細節:布爾值。如果找到指定值返回 true,否則返回 false。
2.filter()
解釋:方法創建一個新的數組,新數組中的元素是通過檢查指定數組中符合條件的所有元素。
JavaScript版本:1.6
用法:arr.filter(function(currentValue,index,arr), thisValue)
function(currentValue, index,arr):必須。函數,數組中的每個元素都會執行這個函數
函數參數:
currentValue:必須。當前元素的值
index:可選。當前元素的索引值
arr:可選。當前元素屬於的數組對象
thisValue:可選。對象作為該執行回調時使用,傳遞給函數,用作 “this” 的值。
如果省略了 thisValue ,“this” 的值為 “undefined”
細節:返回數組,包含了符合條件的所有元素。如果沒有符合條件的元素則返回空數組。
