js 中数组的 filter() 函数的基本使用

这篇具有很好参考价值的文章主要介绍了js 中数组的 filter() 函数的基本使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

filter() 又称为过滤器函数或筛选函数。filter() 把传入的函数依次作用于每个元素,然后根据返回值是 true 还是 false 决定保留还是丢弃该元素

一、 定义和用法

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素

注意:filter() 不会对空数组进行检测

注意:filter() 不会改变原始数组

二、语法

array.filter(function(currentValue,index,arr),thisValue)

js filter函数的用法,js,算法,一些重要笔记,数据结构,javascript

注意:返回值返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组

下面是几个示例

1、在一个 Array 中,删掉偶数保留奇数

// 正常写法
var arr = [1, 2, 4, 5, 6, 9, 10, 15]
var result = arr.filter(function (x){
    return x % 2 !== 0
})
console.log(result)  // [1,5,9,15]

// 简便写法
var arr = [1, 2, 4, 5, 6, 9, 10, 15]
var result = arr.filter(x => x % 2 !== 0)
console.log(result)

2、将 Array 中的空字符串删掉

// 正常写法
var arr = ['A', '', 'B', null, undefined, 'C', ' ']
var result = arr.filter(function (x) { 
     // trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。
     return x && x.trim(); // 注意:IE9以下的版本没有trim()方法 
})
console.log(result) // ['A', 'B', 'C']

// 简便写法
var arr = ['A', '', 'B', null, undefined, 'C', ' ']
var result = arr.filter(x => x && x.trim())
console.log(result)

filter() 接收的回调函数,可以有多个参数。通常我们仅使用第一个参数,表示数组的某个元素。回调函数还可以接收另外两个参数,表示元素的位置和数组本身。

var arr = ['A', 'B', 'C']
var result = arr.filter(function (element, index, self) {
    console.log(element) // 依次打印 'A', 'B', 'C'
    console.log(index) // 依次打印 0, 1, 2
    console.log(self) // self 就是变量 arr
    return true
})

因此,利用 filter() 可以巧妙的去除数组的重复元素

var r= [],
var arr = ['apple', 'strawberry','pear', 'apple', 'orange', 'orange', 'strawberry']
r = arr.filter(function (element, index, self) {
   return self.indexOf(element) === index
})
console.log(r.toString()) //apple,strawberry,pear,orange

去除重复元素依靠的是 indexOf 总是返回第一个元素的位置,后面的重复元素位置的索引与 indexOf 返回的位置不相等,因此被 filter 滤掉了。

 文章来源地址https://www.toymoban.com/news/detail-762528.html

到了这里,关于js 中数组的 filter() 函数的基本使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32】 DSP库函数的一些基本使用

    对于一些刚接触STM32的童靴来说,DSP库一定是一个陌生的东西。通俗来说,DSP库就是为了让MCU能够使用像DSP(数字信号处理的芯片)功能弄的一些官方库函数,它是基于MCU的FPU(浮点运算功能)的,如果你连FPU都不知道咋开,我个人建议先去查一查啥是FPU以及DSP库移植的一些

    2024年02月01日
    浏览(22)
  • [opencv]中一些函数的用法

    1. cv2.bitwise_and() cv2.bitwise_and() 是 OpenCV 中的位运算函数之一,用于对两幅二值图像进行按位“与”操作。具体来说,对于每个像素,将两幅输入图像相应位置的像素值分别进行按位“与”运算,输出的结果图像的对应像素值即为这两幅输入图像对应像素值的按位与结果。 cv2

    2024年02月06日
    浏览(37)
  • vue中vuex的五个属性和基本用法,另加js-cookie的使用

    VueX 是一个专门为 Vue.js 应用设计的状态管理构架,统一管理和维护各个vue组件的可变化状态(你可以理解成 vue 组件里的某些 data )。 state, getters, mutations, actions, modules。 1. state: vuex的基本数据,用来存储变量 2. geeter: 从基本数据(state)派生的数据,相当于state的计算属性 3.

    2024年02月14日
    浏览(30)
  • NumPy数组基本用法

    Numpy是Python科学计算库,用于快速处理任意维度的数组。 NumPy提供一个N维数组类型ndarray,它描述了相同类型的“items”的集合。 numpy.ndarray支持向量化运算。 NumPy使用c语言写的,底部解除了GIL,其对数组的操作速度不在受python解释器限制。 python一个列表中可以存储多种数据类

    2024年02月09日
    浏览(37)
  • VBA(6)数组基本用法及写入输出

    1.数组的基本概念就不过多介绍了;本次为基础复习篇:直接上实例备注说明 K例在本机测试K1运行时间为1帧不到,K2为16帧左右.故而注:调用内存时运行速度较快,在写宏时应尽量多使用内存/数组运算. 2.数组的写入及输出 \\\'以上几种为数组常见赋值方式,部分版本定义一个变量体

    2024年02月11日
    浏览(33)
  • Rust 动态数组Vec基本概念及其用法

    目录 一、基本概念 Vec是什么? Vec的特点 (1)动态大小: (2)可变性: (3)泛型: 二、基础用法 1. 创建 (1) Vec::new()方法 (2) Vec::from()方法 (3) vec! 宏 2. 基础用法 三、Vec的简单实现及其宏模拟 四、leetcode 实战 1. 长度最小的子数组 Minimum-size-subarray-sum 2. 最大子数组和  Maximum Subarray

    2024年02月13日
    浏览(32)
  • 【VideoJs】初识videojs && video.js 视频播放器的基本使用 && videojs基础用法 && videojs视频播放器 && vue3中使用videojs

    免费,开源 插件多 可自定义 【推】 虽然,但是Videojs算好了,但我觉得有点杂,特别是文档与插件,且自定义插件有点困难,也可能是我比较菜吧 相比之下,我还是强烈推荐 【Xgplayer ——点我进入】 备用地址 http://t.csdn.cn/H0cAV Xgplayer 优点 优雅、美观 文档清晰明了 大厂出

    2024年02月03日
    浏览(44)
  • js中.sort()函数的用法

    这是.sort()函数最常见的用法 但或许你还对其为什么要这么操作存有一些疑惑 我们要先搞懂往.sort()里传入的函数的参数a,b是什么 sort()要排序就要遍历数组,以上面的数组为例子 其中遍历第一步的a=3、b=2, 第二步时候a=2、b=3, 第三步的时候a=3,b=34 。。。。。。。 就像你写

    2024年02月02日
    浏览(29)
  • js中reduce()函数的用法

    😁 作者简介:一名大三的学生,致力学习前端开发技术 ⭐️个人主页:夜宵饽饽的主页 ❔ 系列专栏:JavaScript小贴士 👐学习格言:成功不是终点,失败也并非末日,最重要的是继续前进的勇气 ​🔥​前言: 这是我自己有关array.prototype.reduce()函数的用法的总结,如有不足

    2024年02月07日
    浏览(33)
  • MySQL-分组函数ROLLUP的基本用法

    ROLLUP是GROUP BY子句的扩展。 ROLLUP选项允许包含表示小计的额外行,通常称为超级聚合行,以及总计行。 通过使用ROLLUP选项,可以使用单个查询生成多个分组集。 MySQL中的ROLLUP是用于 产生汇总输出的修饰符,包括表示超级汇总(较高级别)汇总操作的额外行。它使我们能够使用

    2024年02月03日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包