JavaScript中数组的filter方法

一.数组filter方法的作用

对数组进行筛选,将满足条件的元素放入新数组中。

二.语法 : array.filter( function ( item, index,arr) {} )箭头函数可写为语法 : array.filter( (item, index,arr)=> {} )

三个参数分别为:

第一个参数: item,必填,当前元素的值。

第二个参数 : index,选填,当前元素在数组中的索引值。

第三个参数 : arr,当前元素所处的数组对象。

三.filter方法的特点

(1)filter()方法不会对空数组进行检测。

(2)filter()方法不会改变原数组。

(3)函数执行次数等于数组长度。

(4)在函数内部return

return true : 满足筛选条件,放入新数组中。

return false : 不满足条件,不放入新数组中。

(5)filter方法的返回值

返回筛选之后的新数组,如果没有符合条件的元素则返回空数组。

四.应用场景 : 数组筛选

示例:vue使用本地数组中的用户数据进行登录

数据:

data() {

// 密码

var validatePass = (rule, value, callback) => {

if (value === '') {

callback(new Error('请输入密码'));

} else {

callback();

}

};

// 账号

var validateUser = (rule, value, callback) => {

if (value === '') {

callback(new Error('请输入账号'));

} else {

callback();

}

};

return {

// 用户信息

userinfo:[

// 普通用户

{

username:'aa',

password:"123",

userstatus:0

},

// 管理员

{

username:'admin',

password:"admin123",

userstatus:1

},

],

// 输入信息

ruleForm: {

username:'',

password:'',

},

rules: {

username: [

{ validator: validateUser, trigger: 'blur' }

],

password: [

{ validator: validatePass, trigger: 'blur' }

]

}

};

},

方法:

methods: {

submitForm(formName) {

this.$refs[formName].validate((valid) => {

if (valid) { //有值

// 本地数据对比登录

let userflag = this.userinfo.filter(d=>{

return d.username == this.ruleForm.username

})[0]

if(!userflag){

failmsg('账号不存在,请重新输入')

}else{

if(userflag.username == this.ruleForm.username && userflag.password == this.ruleForm.password ){

// 把账号密码存储到sessionStorage中

sessionStorage['userinfo'] = JSON.stringify(userflag)

// 显示登录成功

successmsg('登录成功')

// 跳转到主页

this.$router.push('/')

}else{

failmsg('密码错误')

}

}

} else {

console.log('error submit!!');

return false;

}

});

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值