数组方法 | vue修改数组
数组方法
修改原数组
push() 方法(在数组结尾处)向数组添加一个新的元素
var list=["数学","历史"];
list.push("英语");
["数学","历史","英语"]
unshift() 方法(在开头)向数组添加新元素
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon"); // 向 fruits 添加新元素 "Lemon"
unshift() 方法返回新数组的长度。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon"); // 返回 5
pop() 方法从数组中删除最后一个元素
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop(); // 从 fruits 删除最后一个元素("Mango")
pop() 方法返回“被弹出”的值: var x = fruits.pop(); // x 的值是 "Mango"
shift() 方法会删除首个数组元素
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift(); // 从 fruits 删除第一个元素 "Banana" 返回 "Banana"
splice() 方法可用于向数组添加新项:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 0, "Lemon", "Kiwi");
第一个参数(2)定义了应添加新元素的位置(拼接)。
第二个参数(0)定义应删除多少元素。
其余参数(“Lemon”,“Kiwi”)定义要添加的新元素。
Banana,Orange,Lemon,Kiwi,Apple,Mango
splice() 方法返回一个包含已删除项的数组:
fruits.splice(2, 2, "Lemon", "Kiwi");
新数组:
Banana,Orange,Lemon,Kiwi
使用 splice() 来删除元素
第一个参数(0)删除元素的索引
第二个参数(1)定义应该删除多个元素。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(0, 1); // 删除 fruits 中的第一个元素
sort 数组排序
sort() 方法以字母顺序对数组进行排序:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort(); // 对 fruits 中的元素进行排序
对数组进行升序排序
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a - b});
对数组进行降序排序:
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b - a});
随机排序
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return 0.5 - Math.random()});
reverse 反转数组 reverse() 方法反转数组中的元素
可以使用它以降序对数组进行排序:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse(); // 反转元素顺序
生成新的数组
filter() 方法创建一个包含通过测试的数组元素的新数组。
这个例子用值大于 18 的元素创建一个新数组:
var pepole = [{id:1,name:'张三'}]
var p = pepole.filter(item){
return item.id=1
});
concat 合并(连接)数组
concat() 方法通过合并(连接)现有数组来创建一个新数组:
var myGirls = ["Cecilie", "Lone"];
var myBoys = ["Emil", "Tobias", "Linus"];
var myChildren = myGirls.concat(myBoys); // 连接 myGirls 和 myBoys
concat() 方法可以使用任意数量的数组参数:
var arr1 = ["Cecilie", "Lone"];
var arr2 = ["Emil", "Tobias", "Linus"];
var arr3 = ["Robin", "Morgan"];
var myChildren = arr1.concat(arr2, arr3); // 将arr1、arr2 与 arr3 连接在一起
将数组与值合并
var arr1 = ["Cecilie", "Lone"];
var myChildren = arr1.concat(["Emil", "Tobias", "Linus"]);
slice() 方法用数组的某个片段切出新数组。
slice() 方法创建新数组。它不会从源数组中删除任何元素。
当slice() 有一个参数 ,从参数开始切出数组的剩余部分
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(3);
Apple,Mango
slice() 可接受两个参数,比如 (1, 3)。
该方法会从开始参数选取元素,直到结束参数(不包括)为止。
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3);
Orange,Lemon
vue响应式修改数组
vue 响应式地 处理数组 以及对象的属性
Vue.set(vm.items,index,newValue)
vm.$set(vm.items,index,newValue)
数组参数含义: 要处理的参数的名称, 要处理的数组索引,要处理的数组的值
对象属性参数的含义:要处理的对象名称,要处理的对象属性,要处理的对象属性值