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 判断元素上是否绑定了事件
Oct 28 Javascript
js change,propertychange,input事件小议
Dec 20 Javascript
js获取多个tagname的节点数组
Sep 22 Javascript
js实现仿百度瀑布流的方法
Feb 05 Javascript
jquery实现在光标位置插入内容的方法
Feb 05 Javascript
JavaSacript中charCodeAt()方法的使用详解
Jun 05 Javascript
关于不同页面之间实现参数传递的几种方式讨论
Feb 13 Javascript
Vue-resource实现ajax请求和跨域请求示例
Feb 23 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
Jul 25 Javascript
seajs中模块依赖的加载处理实例分析
Oct 10 Javascript
js实现下拉框二级联动
Dec 04 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
Sep 02 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获取linux服务器状态的代码
2014/05/27 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
使用xampp搭建运行php虚拟主机的详细步骤
2015/10/21 PHP
基于jquery的一个浮动框(扩展性比较好 )
2010/08/27 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
2013/01/04 Javascript
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
2013/05/13 Javascript
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
js对象继承之原型链继承实例
2015/01/10 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
2016/03/09 Javascript
Node.js中npm常用命令大全
2016/06/09 Javascript
Nodejs抓取html页面内容(推荐)
2016/08/11 NodeJs
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
Bootstrap Table使用整理(一)
2017/06/09 Javascript
通过webpack引入第三方库的方法
2018/07/20 Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
2018/11/25 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
解决Python 遍历字典时删除元素报异常的问题
2016/09/11 Python
Python根据文件名批量转移图片的方法
2018/10/21 Python
linux下安装python3和对应的pip环境教程详解
2019/07/01 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
Python hmac模块使用实例解析
2019/12/24 Python
英国巧克力贸易公司:Chocolate Trading Company
2017/03/21 全球购物
ASOS英国官网:英国在线时装和化妆品零售商
2017/05/19 全球购物
JAVA程序员面试题
2012/10/03 面试题
幼儿园亲子活动方案
2014/01/29 职场文书
思想品德课教学反思
2014/02/10 职场文书
给领导的检讨书
2014/02/16 职场文书
中考冲刺决心书
2014/03/11 职场文书
共产党员公开承诺书
2014/03/25 职场文书
酒店优秀员工推荐信
2015/03/24 职场文书
余世维讲座观后感
2015/06/11 职场文书
董存瑞观后感
2015/06/11 职场文书
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python