Vue数组响应式操作及高阶函数使用代码详解


Posted in Javascript onAugust 01, 2020

组的响应式操作

//this.letters.push('123');//在末尾添加一个元素

//this.letters.pop();//从末尾删除一个元素
//this.letters.unshift('111');//在开端添加一个元素
//this.letters.shift();//从开端删除一个元素
//this.letters.splice(1,2);//从下标为1的元素开始删除两个元素
//this.letters.splice(1,2,'777','888');//从下标为1的元素开始删除两个元素,并插入一个新元素
//this.letters.splice(1, 0, '777', '888'); //在下标为1处插入两个元素
//this.letters.splice(2);//保留前2个元素,其他的删除掉

高阶函数

1、filter过滤函数

filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。

filter把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。

const nums = [2,3,5,1,77,55,100,200];
let newArray = nums.filter(function (n) {
  //小于100就是true,进入newArray数组
  return n < 100;
})
console.log(newArray);//[2,3,5,1,77,55]

2、map高阶函数

map函数同样会遍历数组每一项,传入回调函数为参数,num是map遍历的每一项,回调函数function返回值会被添加到新数组中

const nums = [2,3,5,1,77,55,100,200];
let newArray = nums.filter(function (n) {
  //小于100就是true,进入newArray数组
  return n < 100;
})
console.log(newArray);//[2,3,5,1,77,55]

3、reduce高阶函数

reduce函数同样会遍历数组每一项,传入回调函数和‘0'为参数,0表示回调函数中preValue初始值为0,回调函数中参数preValue是每一次回调函数function返回的值,currentValue是当前值

const nums = [2,3,5,1,77,55,100,200];
let new3Array = nums.reduce(function (preValue,currentValue) {
  //数组为[2,3,5,1,77,55,100,200],则回调函数第一次返回值为0+2=2,第二次preValue为2,返回值为2+3=5,以此类推直到遍历完成
  return preValue+currentValue;
},0);//第二个参数0是preValue的初始值
console.log(new3Array);//443

4、sort排序算法

因为Array的sort()方法默认把所有元素先转换为String再排序,结果'10'排在了'2'的前面,因为字符'1'比字符'2'的ASCII码小。如果不知道sort()方法的默认排序规则,直接对数字排序,绝对栽进坑里!

//要按数字大小排序,我们可以这么写:
var arr = [10, 20, 1, 2];
arr.sort(function (x, y) {
  if (x < y) {
    return -1;
  }
  if (x > y) {
    return 1;
  }
  return 0;
}); // [1, 2, 10, 20]

//如果要倒序排序,我们可以把大的数放前面:
var arr = [10, 20, 1, 2];
arr.sort(function (x, y) {
  if (x < y) {
    return 1;
  }
  if (x > y) {
    return -1;
  }
  return 0;
}); // [20, 10, 2, 1]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
利用JQuery为搜索栏增加tag提示
Jun 22 Javascript
jQuery each()小议
Mar 18 Javascript
Javascript 绘制 sin 曲线过程附图
Aug 21 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
May 16 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
Apr 13 Javascript
mpvue全局引入sass文件的方法步骤
Mar 06 Javascript
React 使用Hooks简化受控组件的状态绑定
Mar 18 Javascript
vue中destroyed方法的使用说明
Jul 21 Javascript
vue配置多代理服务接口地址操作
Sep 08 Javascript
vue 实现element-ui中的加载中状态
Nov 11 Javascript
Vue项目利用axios请求接口下载excel
Nov 17 Vue.js
vue 自定义的组件绑定点击事件
Apr 21 Vue.js
vue 组件简介
Jul 31 #Javascript
three.js 制作动态二维码的示例代码
Jul 31 #Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
Jul 31 #Javascript
vue抽出组件并传值实例
Jul 31 #Javascript
Vue通过Blob对象实现导出Excel功能示例代码
Jul 31 #Javascript
Vue.js中使用Vuex实现组件数据共享案例
Jul 31 #Javascript
原生JS实现记忆翻牌游戏
Jul 31 #Javascript
You might like
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
PHP目录函数实现创建、读取目录教程实例
2011/01/13 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
javascript垃圾收集机制与内存泄漏详细解析
2013/11/11 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
JS验证input输入框(字母,数字,符号,中文)
2017/03/23 Javascript
Angular2 组件通信的实例代码
2017/06/23 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
Vue中JS动画与Velocity.js的结合使用
2019/02/13 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
简单谈谈javascript高级特性
2019/09/04 Javascript
python+influxdb+shell编写区域网络状况表
2018/07/27 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
学习Django知识点分享
2019/09/11 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
2020/06/23 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
2020/09/23 Python
python excel多行合并的方法
2020/12/09 Python
德国综合购物网站:OTTO
2018/11/13 全球购物
Wedgwood英国官方网站:英式精致骨瓷餐具、礼品与生活精品,源于1759年
2019/09/02 全球购物
J2EE中的容器都包括哪些
2013/08/21 面试题
室内设计实习自我鉴定
2013/09/25 职场文书
个人对照检查材料
2014/02/12 职场文书
财务总监岗位职责
2014/03/07 职场文书
应届生自荐信
2014/06/30 职场文书
学生不讲诚信检讨书
2014/09/29 职场文书
安全教育第一课观后感
2015/06/17 职场文书
MySQL 聚合函数排序
2021/07/16 MySQL
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS