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,
第三个参数,是整个数组,

posted @ 2021-08-13 12:53  技术改变命运Andy  阅读(48)  评论(0编辑  收藏  举报