浅析vue.js数组的变异方法


Posted in Javascript onJune 30, 2018

Vue 包含一组观察数组的变异方法,所以它们也将会触发视图更新。这些方法如下:

  • push()
  • pop()
  • shift()
  • unshift()
  • splice()
  • sort()
  • reverse()

都有什么功能?动手试验了一下:

<body>
  <div id="app">
   <div>
    push方法:
    <input type="text" v-model="text" @keyup.enter="methodByPush">
    <input type="button" value="测试功能" @click="methodByPush">
    <ul>
     <li v-for="item of items">
      <span v-text="item"></span>
     </li>
    </ul>
   </div>
    <div>
    pop方法:
    <input type="button" value="测试功能" @click="methodByPop">
    <ul>
     <li v-for="item of items">
      <span v-text="item"></span>
     </li>
    </ul>
   </div>
   <div>
    shift方法:
    <input type="button" value="测试功能" @click="methodByShift">
    <ul>
     <li v-for="item of items">
      <span v-text="item"></span>
     </li>
    </ul>
   </div>
    <div>
    unshift方法:
    <input type="text" v-model="text" @keyup.enter="methodByUnshift">
    <input type="button" value="测试功能" @click="methodByUnshift">
    <ul>
     <li v-for="item of items">
      <span v-text="item"></span>
     </li>
    </ul>
   </div>
   <div>
    splice方法:
    <input type="button" value="测试功能" @click="methodBySplice">
    <ul>
     <li v-for="item of items">
      <span v-text="item"></span>
     </li>
    </ul>
   </div>
   <div>
    sort方法:
    <input type="button" value="测试功能" @click="methodBySort">
    <ul>
     <li v-for="item of items">
      <span v-text="item"></span>
     </li>
    </ul>
   </div> 
   <div>
   reverse方法:
    <input type="button" value="测试功能" @click="methodByReverse">
    <ul>
     <li v-for="item of items">
      <span v-text="item"></span>
     </li>
    </ul>
   </div>
   result显示的地方:<br>
   <span v-text="result"></span>
  </div>
<script>
  var vm = new Vue({
   el: '#app',
   data: {
    items: [],
    text: '',
    result: ''
   },
   methods: {
    methodByPush: function () {
     this.result = this.items.push(this.text)
     this.text = ''
    },
    methodByPop: function () {
     this.result = ''
     this.result = this.items.pop()
    },
    methodByShift: function () {
     this.result = ''
     this.result = this.items.shift()
    },
    methodByUnshift: function () {
     this.result = ''
     this.result = this.items.unshift(this.text)
     this.text = ''
    },
    methodBySplice: function () {
     this.result = ''
     this.result = this.items.splice(2,1,'yovan')
    },
    methodBySort: function () {
     this.result = ''
     this.result = this.items.sort()
    },
    methodByReverse: function () {
     this.result = ''
     this.result = this.items.reverse()
     alert(this.result)
    }
   }
  })
</script>

得到下面的结论:

push() 往数组最后面添加一个元素,成功返回当前数组的长度

pop() 删除数组的最后一个元素,成功返回删除元素的值

shift() 删除数组的第一个元素,成功返回删除元素的值

unshift() 往数组最前面添加一个元素,成功返回当前数组的长度

splice() 有三个参数,第一个是想要删除的元素的下标(必选),第二个是想要删除的个数(必选),第三个是删除
后想要在原位置替换的值(可选)

sort() 使数组按照字符编码默认从小到大排序,成功返回排序后的数组

reverse() 将数组倒序,成功返回倒序后的数组

后来发现这些应该都是javascript本来的方法吧?以前javascript没学好,正好趁这次把这些方法的用法都给捡回来!

Javascript 相关文章推荐
深入理解JavaScript系列(30):设计模式之外观模式详解
Mar 03 Javascript
JS获取网页图片name属性的方法
Apr 01 Javascript
Angular 中 select指令用法详解
Sep 29 Javascript
AngularJS指令用法详解
Nov 02 Javascript
AngularJS封装指令方法详解
Dec 12 Javascript
JavaScript循环_动力节点Java学院整理
Jun 28 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
Jul 03 Javascript
bootstrap可编辑下拉框jquery.editable-select
Oct 12 jQuery
详解Angular2学习笔记之Html属性绑定
Jan 03 Javascript
jQuery实现的简单拖拽功能示例【测试可用】
Aug 14 jQuery
在vue中安装使用vux的教程详解
Sep 16 Javascript
node.js处理前端提交的GET请求
Aug 30 Javascript
详解vue添加删除元素的方法
Jun 30 #Javascript
vue.js删除列表中的一行
Jun 30 #Javascript
vue v-model动态生成详解
Jun 30 #Javascript
vue-router+nginx 非根路径配置方法
Jun 30 #Javascript
Vue项目中添加锁屏功能实现思路
Jun 29 #Javascript
angular6.0开发教程之如何安装angular6.0框架
Jun 29 #Javascript
详解Angular6.0使用路由步骤(共7步)
Jun 29 #Javascript
You might like
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
2011/05/07 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
2013/08/09 PHP
Yii实现的多级联动下拉菜单
2016/07/13 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
2019/07/20 PHP
关于Javascript 的 prototype问题。
2007/01/03 Javascript
Extjs显示从数据库取出时间转换JSON后的出现问题
2012/11/20 Javascript
jquery()函数的三种语法介绍
2013/10/09 Javascript
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
VUE2实现事件驱动弹窗示例
2017/10/21 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
Python跳出循环语句continue与break的区别
2014/08/25 Python
pytorch中的embedding词向量的使用方法
2019/08/18 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
python 进程池pool使用详解
2020/10/15 Python
HTML5 Canvas绘制五星红旗
2016/05/04 HTML / CSS
Happy Socks英国官网:购买五颜六色的袜子
2020/11/03 全球购物
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
机械专业应届生求职信
2013/09/21 职场文书
策划总监岗位职责
2014/02/16 职场文书
竞选班干部的演讲稿
2014/04/24 职场文书
教师一帮一活动总结
2014/07/08 职场文书
2016年党员岗位承诺书
2016/03/24 职场文书
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python
python 标准库原理与用法详解之os.path篇
2021/10/24 Python
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python