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 相关文章推荐
Using the TextRange Object
Oct 14 Javascript
IE本地存储userdata的一个bug说明
Jul 01 Javascript
理解Javascript_06_理解对象的创建过程
Oct 15 Javascript
jquery对象和javascript对象即DOM对象相互转换
Aug 07 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
Mar 22 Javascript
JS中常用的输出方式(五种)
Jun 12 Javascript
微信小程序开发入门基础教程
Apr 19 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
Feb 24 Javascript
Vue-component全局注册实例
Sep 06 Javascript
vue文件运行的方法教学
Feb 12 Javascript
从零搭一个自用的前端脚手架的方法步骤
Sep 23 Javascript
Vue实现Header渐隐渐现效果的实例代码
Nov 05 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 foreach 使用&amp;(与运算符)引用赋值要注意的问题
2010/02/16 PHP
php学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
php curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
三种php连接access数据库方法
2013/11/11 PHP
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
ext读取两种结构的xml的代码
2008/11/05 Javascript
jQuery 入门讲解1
2009/04/15 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
2016/01/23 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
js 动态生成json对象、时时更新json对象的方法
2016/12/02 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
JavaScript实现筛选数组
2021/03/02 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
决策树的python实现方法
2014/11/18 Python
Python中的sort()方法使用基础教程
2017/01/08 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
Django项目使用ckeditor详解(不使用admin)
2019/12/17 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
几道PHP面试题
2013/04/14 面试题
旅游管理毕业生自荐信
2013/11/05 职场文书
可贵的沉默教学反思
2014/02/06 职场文书
爸爸的花儿落了教学反思
2014/02/20 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
2015年施工员工作总结范文
2015/04/20 职场文书
文艺晚会开场白
2015/05/29 职场文书
校园运动会广播稿
2015/08/19 职场文书
关于环保的广播稿
2015/12/17 职场文书
MySQL 全文检索的使用示例
2021/06/07 MySQL
Nginx HTTP跳转至HTTPS
2022/05/15 Servers