JavaScript数组filter方法

JavaScript数组filter方法1.数组filter方法作用筛选数组,将满足条件的元素放入新数组中2.语法:array.filter(function(item,index,arr){})第一个参数:item,必须,当前元素的值第二个参数:index,可选,当前元素在数组中的索引值第三个参数:arr,当前元素所处的数组对象3.filter方法特点(1)函数执行次数===数组长度(2)函数内部的returnreturntrue:满足筛选条件,放入新数组中return

大家好,又见面了,我是你们的朋友全栈君。

1.数组filter方法作用

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

2.语法 : array.filter( function ( item, index,arr) {} )

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

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

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

3.filter方法特点

(1)函数执行次数 === 数组长度

(2)函数内部的return

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

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

(3)filter方法的返回值

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

4.注意点:

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

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

5.应用场景 : 筛选数组

示例 :价格筛选

//封装函数渲染页面
const renderData = (arr) => {
    document.querySelector('.list').innerHTML = arr.map( item => 
            `<div class="item">
            <img src="${item.picture}" alt="">
            <p class="name">${item.name}</p>
            <p class="price">${item.price}</p>
            </div>`
    ).join('')
}
renderData(goodsList)
//点击事件
const aList = document.querySelectorAll('.filter a')
//遍历数组
aList.forEach( ( item,index ) => 
    item.onclick = function () {//注册点击事件
        //类名排他
        document.querySelector('.active').classList.remove('active')
        item.classList.add('active')
        //判断筛选
        if (index === 0) {//0-100
            renderData(goodsList.filter(item => item.price < 100))
        }else if (index === 1) {//100-300
            renderData(goodsList.filter(item => item.price >= 100 && item.price < 300))
        }else if (index === 2) {//100-300
            renderData(goodsList.filter(item => item.price > 300 ))
        }else {
            renderData(goodsList)
        }
    }
)

:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159291.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月14日 下午8:36
下一篇 2022年7月14日 下午8:36


相关推荐

  • linux卸载jdk的方法_linux卸载自带的jdk

    linux卸载jdk的方法_linux卸载自带的jdk第一、以root账号登录如下[whutsun@localhost~]$surootPassword: 第二、查看系统已安装的jdk[root@localhostwhutsun]#rpm-qa|grepjdkjdk-1.6.0_22-fcs第三、卸载jdk[root@localhostwhutsun]#rpm-e–nod

    2026年4月17日
    6
  • oracle11.2 异常关闭机器引起,ora-01172,ora-01152错误处理

    oracle11.2 异常关闭机器引起,ora-01172,ora-01152错误处理

    2021年8月28日
    73
  • 神器 Nginx 的学习手册 ( 建议收藏 )

    神器 Nginx 的学习手册 ( 建议收藏 )转载:DevOps技术栈Nginx是一个高性能的HTTP和反向代理服务器,特点是占用内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好。Nginx…

    2026年1月16日
    7
  • MODBUS协议规范-中文版(免费下载)

    MODBUS协议规范-中文版(免费下载)1.Modbus数据帧构成:地址域+功能码+数据+差错校验下面逐一解释各部分的具体含义:(1)地址域:即主站要访问的从站地址,其范围0~247(2)功能码:即主站想要从站执行什么动作。从大的方面看分为读(主站读取从站数据),写(主站向从站读取数据)(3)数据:如果主站的请求是读数据,那么该“数据”要包含的信息有:从哪里开始读数据+读多少数据。如果主站的请求是向从站写…

    2022年7月15日
    23
  • leetcode 回文数_字符串反转java

    leetcode 回文数_字符串反转java原题链接请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即,“1

    2022年8月8日
    7
  • python的concat函数_python concat函数

    python的concat函数_python concat函数test1=pd.DataFrame(np.random.randn(2,2),columns=[‘1′,’2’])test1test2=pd.DataFrame(np.random.randn(4,2),columns=[‘1′,’sss’])test2test3=pd.concat([test1,test2])test3test4=pd.concat([test1,test2],axis=1)…

    2022年5月1日
    56

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号