首页 > 编程语言 >JavaScript数组filter方法

JavaScript数组filter方法

时间:2023-09-20 17:16:07浏览次数:37  
标签:index JavaScript filter item renderData 数组 100

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)
       }
   }
)


标签:index,JavaScript,filter,item,renderData,数组,100
From: https://www.cnblogs.com/ranyonsue/p/17717779.html

相关文章

  • ES6中数组新增了的扩展
    扩展运算符的应用ES6通过扩展元素符...,比如 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列console.log(...[1,2,3])//123console.log(1,...[2,3,4],5)//12345[...document.querySelectorAll('div')]//[<div>,<div>,<div>]主要用于函数调用的时候......
  • javascript处理数组
     letdata=[{"subject_id":948,"xmdw":"长春市实验中学","sbnd":2023,"xmmc":"长春市实验中学食堂厨具设备更换项目"},{"subject_id":949,"x......
  • 算法学习 |Day 1 数组基础 704. 二分查找,27. 移除元素
    704.二分查找思路:二分查找的前置条件是数组有序且无重复元素,每次通过改变边界值来缩小查找范围。自己写的:可以看到对边界的判断存在问题,基本思路是左闭右闭,但是while循环的判断是按照左闭右开来写的。对于数组中仅包含一个元素且该元素是目标函数的情况会出错。重新调试后......
  • 无涯教程-JavaScript - BETA.DIST函数
    描述BETA.DIST函数返回beta分布。Beta分布通常用于研究样品中某物百分比的变化。语法BETA.DIST(x,alpha,beta,cumulative,[A],[B])争论Argument描述Required/OptionalXThevaluebetweenAandBatwhichtoevaluatethefunction.RequiredAlphaAparameterof......
  • 树结构转数组/数组转树结构
    树结构转数组constlistTree=[{id:1,name:'部门1',pid:0,children:[{id:2,name:'部门1-1',pid:1,children:[......
  • Java学习之路--array--数组
    packagecom.chao.array;/*数组定义:1.数组市相同类型数据的有序集合2.数组描述的是相同类型的若干个数据,按照一定的先后顺序排列组合而成3.其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们数组声明创建首先必须声明数组变量,才能在程序中使用数组,声明数组变......
  • javascript 正则校验
    规则的国内固定电话和传真的格式基本都是带有0的区号+连接符“-”+电话号码,另外还有可能有分机号,区号有3位、4位,电话号码有7位和8位的;其它格式的有前面不带0的,或者不带连接符的,或者分机号前面使用#号的,或者前面加“+86”的等等;区号:前面一个0,后面跟2-3位数字:0\d{2,3}电话号码:7-8位......
  • 每日一题:如何判断是否是数组,一个既简单又复杂的问题。(不要再用Object.prototype.toStr
    1、不要使用Object.prototype.toString.call()正常情况下:constarr=[1,2,3,4,5]constobj={}console.log(Object.prototype.toString.call(arr))//[Object,Array]console.log(Object.prototype.toString.call(obj))//[Object,Object]过去我们能够通过判断Object.proto......
  • 无涯教程-JavaScript - AVERAGE函数
    描述AVERAGE函数返回参数的平均值(算术平均值)。语法AVERAGE(number1,[number2]...)争论Argument描述Required/OptionalNumber1Thefirstnumber,cellreference,orrangeforwhichyouwanttheaverage.RequiredNumber2,...Additionalnumbers,cellrefe......
  • 七天学会C语言-第四天(数组)
    1.定义一维数组在C语言中,一维数组是具有相同数据类型的元素的有序集合。定义一维数组的基本语法如下:data_typearray_name[array_size];其中:data_type 是数组元素的数据类型,可以是整数、浮点数、字符等。array_name 是数组的名称,你可以自定义。array_size 是数组的大小,指定了数......