1-4-2-js-核心语法-引用数据类型:数组Array 类型,详细的操作splice方法
在 JavaScript 中,对象是王。如果您理解了对象,就理解了 JavaScript。
数据类型,之前说了有6种,
一共有6中数据类型,
string,字符串,
number,数字
Boolean,布尔,
null,空值
undefined,未定义,
object,对象,
前5种,是基本数据类型,
object,是引用数据类型,
今天讲解引用数据类型:数组Array 类型
创建数组
// 使用中括号创建一个数组:
var cars = ["Saab", "Volvo", "BMW"];
// 使用 JavaScript 关键词 new 创建一个数组:
var cars = new Array("Saab", "Volvo", "BMW");
// 没有必要使用 JavaScript 的内建数组构造器 new Array()。使用 [] 取而代之!工作中都使用[]这种方式,new 关键词只会使代码复杂化。它还会产生某些不可预期的结果。
// 数组元素,您可以在数组中保存对象,保存函数。你甚至可以在数组中保存数组,
访问数组
//通过引用数组名来访问完整数组:
var cars = ["Saab", "Volvo", "BMW"];
cars
// 通过索引下标访问数组
var cars = ["Saab", "Volvo", "BMW"];
cars[0]
// a1[1:2] //不支持这种冒号的
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.length; // 返回数组的长度
修改数组
var cars = ["Saab", "Volvo", "BMW"];
cars[0] = "Opel";
添加元素方式一:
fruits.push("Kiwi"); // 这个是在数组末尾添加一个元素,这个方法也是有返回值的,是返回新的数组的长度,
添加元素方式二:
fruits.unshift("Lemon"); // 在最前面添加一个元素,有返回值:返回新数组的长度。
数组排序
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort(); //这是按照首字母排序
fruits.reverse(); // 反转元素顺序
数组合并和切片
合并两个数组
var myGirls = ["Cecilie", "Lone"];
var myBoys = ["Emil", "Tobias", "Linus"];
var myChildren = myGirls.concat(myBoys); // ["Cecilie", "Lone", "Emil", "Tobias", "Linus"]
合并三个数组
var arr1 = ["Cecilie", "Lone"];
var arr2 = ["Emil", "Tobias", "Linus"];
var arr3 = ["Robin", "Morgan"];
var myChildren = arr1.concat(arr2, arr3);
数组与值合并
var arr1 = ["Cecilie", "Lone"];
var myChildren = arr1.concat(["Emil", "Tobias", "Linus"]);
切片
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(3); // 这是从下标3开始切出一个新的数组,
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3); // 这个是从下标1开始,到下标3(不包括3),切出一个新的数组,
删除元素
var fruits = ["Banana", "Orange", "Apple", "Mango"];
删除元素方式一:
delete fruits[0];
删除元素方式二:
fruits.pop(); // 会返回并且删除掉最有一个元素,这个方法是有返回值的,就是返回了最后一个元素
删除元素方式三:
fruits.shift(); // 这个方法是删除第一个元素,也是有返回值的是返回第一个元素的值,
数组转为字符串
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.toString(); // 转换成字符串:"Banana,Orange,Apple,Mango"
fruits.join("*"); // 也是转换成为字符串,但是可以指定分隔符,"Banana*Orange*Apple*Mango"
splice方法可以实现增删改功能
splice方法介绍
splice(index,len,[item])它也可以用来替换/删除/添加数组内某一个或者几个值(该方法会改变原始数组)
index:数组开始下标
len: 替换/删除的长度
item:替换的值,删除操作的话 item为空
splice方法删除:
//删除起始下标为1,长度为1的一个值(len设置1,如果为0,则数组不变)
var arr = ['a','b','c','d'];
arr.splice(1,1);
console.log(arr);
//['a','c','d'];
//删除起始下标为1,长度为2的一个值(len设置2)
var arr2 = ['a','b','c','d']
arr2.splice(1,2);
console.log(arr2);
//['a','d']
删除:
function update () {
this.list.splice(index,1)
}
splice方法替换:
//替换起始下标为1,长度为1的一个值为‘ttt’,len设置的1
var arr = ['a','b','c','d'];
arr.splice(1,1,'ttt');
console.log(arr);
//['a','ttt','c','d']
//替换起始下标为1,长度为2的两个值为‘ttt’,len设置的2
var arr2 = ['a','b','c','d'];
arr2.splice(1,2,'ttt');
console.log(arr2);
//['a','ttt','d']
this.tagList1.splice(row.index,1,response.data)
就这么用,就是把这个数据刷新成为最新的数据了,
修改:
function update () {
this.list.splice(index,1,newItem)
}
splice方法添加:
//在下标为1处添加一项'ttt'
var arr = ['a','b','c','d'];
arr.splice(1,0,'ttt');
arr.splice(arr.length,0,'ttt'); # 在末尾添加
console.log(arr);
//['a','ttt','b','c','d']
增加:
function add () {
this.list.splice(index,0,newItem)
}
数组遍历,
for
var fruits = ["Banana", "Orange", "Apple", "Mango"];
for(i=0;i<fruits.length;i++){console.log(fruits[i])}
forEach
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.forEach(function(a,b,c){console.log(a)})
使用forEach方法遍历,这个只是支持ie8以上的浏览器,这个方法用的不多,一般我们遍历都是用for,
而且这个forEach,是需要传递一个函数进去,
数组中有几个元素,这个函数就会执行几次,而且每次遍历都会把元素作为实参传递到函数中,
第一个参数,是元素值,
第二个参数,是元素的下标index,
第三个参数,是整个数组,
技术改变命运