! Object.filter()返回一个符合条件的数组
var ages = [32, 33, 16, 40];
function A(age) {
return age >= 18;
}
let a = ages.filter(A)
a = 【32,33,40】
Object.keys( 对象/数组 )? 返回一个数组,数组由对象的键(key)组成。
Array.every( fanction(){} ) 返回Boolean类型,如果 每一项都对则返回 ture
var ages = [32, 33, 16, 40];
function checkAdult(age) {
return age >= 18;
}
? ? ??
Array.some( fanction(){} ) 返回Boolean类型,如果 其中一项对则返回 ture
Array.includes( ) 返回Boolean类型? 判断一个 数组/对象 是否包含一个指定的值
string.indexof( ?)返回一个数字 (其实是字符串),这里有个功能,能判断字符串里是否包含指定的字符串,如果不包含则返回 -1
var str="Hello world!"
document.write(str.indexOf("Hello") + "<br />")
document.write(str.indexOf("World") + "<br />")
document.write(str.indexOf("world"))
0
-1
6
array.join()? 将数组作为字符串返回。元素将由指定的分隔符分隔。默认分隔符是逗号 (,)。
array.splice(从第几个开始?, 删除多少个 , 这里写要增加的元素?)? ? ?//这个操作数组
! string.split(' ')返回一个数组,把字符串 按照传入的参数 去分离字符串
string.slice(start , end ) //这个操作字符串
放上觉得经典的前端过滤代码段?? ?
//假设后端通过接口给我们的数据如下:
let data = [ {
name: 'Andy',
age: 13
}, {
name: 'Jack',
age: 14
}, {
name: 'Lucy',
age: 12
} ]
//在实际项目中,我们需要根据筛选框中的条件来实现数据的过滤,下面为过滤方法:
//@param condition 过滤条件
//@param data 需要过滤的数据
let filter=(condition,data)=>{
return data.filter( item => {
return Object.keys( condition ).every( key => {
return String( item[ key ] ).toLowerCase().includes(
String( condition[ key ] ).trim().toLowerCase() )
} )
} )
}
//假设选择的条件为name中带字母a的元素
var condition={name:'a'}
filter(condition,data) //[ {name: 'Andy',age: 13},{name: 'Jack',age: 14}]
//假设选择的条件为name中带字母a,而且age为13的元素
var condition={name:'a',age:13}
filter(condition,data) //[ {name: 'Andy',age: 13}]
?
|