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 相关文章推荐
Google (Local) Search API的简单使用介绍
Nov 28 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
Jan 08 Javascript
ES6新特性之模块Module用法详解
Apr 01 Javascript
angular实现IM聊天图片发送实例
May 08 Javascript
requirejs按需加载angularjs文件实例
Jun 08 Javascript
AngularJS 控制器 controller的详解
Oct 17 Javascript
在React 组件中使用Echarts的示例代码
Nov 08 Javascript
angularjs结合html5实现拖拽功能
Jun 25 Javascript
详解Webpack多环境代码打包的方法
Aug 03 Javascript
Javascript实现一朵从含苞到绽放的玫瑰
Mar 30 Javascript
Vue函数式组件的应用实例详解
Aug 30 Javascript
Vue中component标签解决项目组件化操作
Sep 04 Javascript
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边学边教》(02.Apache+PHP环境配置――上篇)
2006/12/13 PHP
php正则表达式使用的详细介绍
2013/04/27 PHP
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
php异常处理方法实例汇总
2015/06/24 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
JavaScript 无符号右移赋值操作
2009/04/17 Javascript
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
Array.prototype.slice.apply的使用方法
2010/03/17 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
2011/07/10 Javascript
javascript简易缓动插件(源码打包)
2012/02/16 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
javascript里绝对用的上的字符分割函数总结
2014/07/31 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
js实现继承的5种方式
2015/12/01 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
微信小程序 实战程序简易新闻的制作
2017/01/09 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
浅析Python3爬虫登录模拟
2018/02/07 Python
python之从文件读取数据到list的实例讲解
2018/04/19 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
在Python IDLE 下调用anaconda中的库教程
2020/03/09 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
中介公司区域经理岗位职责范本
2014/03/02 职场文书
电气工程师岗位职责
2015/02/12 职场文书
红与黑读书笔记
2015/06/29 职场文书
行政处罚告知书
2015/07/01 职场文书
Python绘画好看的星空图
2022/03/17 Python
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers