首页> 基础笔记 >Vue学习笔记 >基础和指令 基础和指令

vue数组变化侦测详解

作者:小萝卜 2024-03-09 浏览 82

简介Vue 能够侦听响应式数组的变更方法,并在它们被调用时触发相关的更新。这些变更方法包括:push()、pop()、shift()、unshift()、splice()、sort()、reverse()


数组变化侦测​


变更方法​

Vue 能够侦听响应式数组的变更方法,并在它们被调用时触发相关的更新。这些变更方法包括:

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
 
let arr = ['a', 'b', 'c', 'd']
console.log(arr)  // ["a", "b", "c", "d"]
console.log(arr.push('new')) //6
console.log(arr) // ["a", "b", "c", "d", "new"]

 
pop() 方法数组最后一位元素删除并返回数组的最后一个元素。
 
let arr = ['a', 'b', 'c', 'd']
console.log(arr)  // ["a", "b", "c", "d"]
console.log(arr.pop()) //d
console.log(arr) // ["a", "b", "c"]

 
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
 
let arr = ['a', 'b', 'c', 'd']
console.log(arr)  // ["a", "b", "c", "d"]
console.log(arr.shift()) //a
console.log(arr) // ["b", "c", "d"]
 
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
 
let arr = ['a', 'b', 'c', 'd']
console.log(arr)  // ["a", "b", "c", "d"]
console.log(arr.unshift('new')) //6
console.log(arr) // ["new","a", "b", "c", "d"]

 
splice(index,howmany,item1, …, itemX) 方法向/从数组中添加/删除项目,然后返回被删除的项目

第一个参数:表示从哪个索引位置(index)添加/删除元素

第二个参数:要删除的项目数量。如果设置为 0,则不会删除项目。

第三个参数:可选。向数组添加的新项目。

例:splice(1);保留前一个元素之后的全部删除,splice(2);保留前两个元素之后的全部删除

let arr = ['a', 'b', 'c', 'd']
arr.splice(2)
console.log(arr) //["a", "b"]

例:splice(2, 1) 从索引位置(index:2)删除,删除一个元素

let arr = ['a', 'b', 'c', 'd']
arr.splice(2, 1)
console.log(arr) // ["a", "b", "d"]

例:splice(1,2,‘a’,‘b’) 从索引位置(index:1)删除,删除2个元素,并添加2个新元素来替代被删除的元素

let arr = ['a', 'b', 'c', 'd']
arr.splice(1, 2, '1', '2')
console.log(arr) // ["a", "1", "2", "d"]

例:splice(1,0,‘a’)从索引位置(index:1)添加,添加两个元素

let arr = ['a', 'b', 'c', 'd']
arr.splice(1, 0, '1', '2')
console.log(arr) // ["a", "1", "2", "b", "c", "d"]

 
sort() 方法对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

arr.sort(sortby) 可选。规定排序顺序。必须是函数。

let arr = ['e', 'a', 'c', 'b', 'd']
arr.sort()
console.log(arr) //["a", "b", "c", "d", "e"]

例:字母顺序进行排序

function sortNumber (a, b) {
  return a - b
}
let arr = [10,5,40,25,1000,1]
arr.sort(sortNumber)
console.log(arr) // [1, 5, 10, 25, 40, 1000]

 
reverse() 方法颠倒数组中元素的顺序。
 
let arr = ['a', 'b', 'c', 'd']
arr.reverse()
console.log(arr) // ["d", "c", "b", "a"]

可以理解为使用使用上面方法改变数组时,页面会及时体现这种变化。

替换数组

它们不会变更原始数组,而总是返回一个新数组。当使用非变更方法时,可以用新数组替换旧数组:
 

example1.items = example1.items.filter(function (item) {
  return item.message.match(/Foo/)
})

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

concat() 方法用于连接两个或多个数组。

slice() 方法可从已有的数组中返回选定的元素。

很赞哦! (0)

文章评论

    高端网站建设