0
点赞
收藏
分享

微信扫一扫

6. JavaScript 基本的数据结构 -- 数组Array(1)

you的日常 2022-05-04 阅读 50

1.创建array:

//[1,2,3]
let arr1 = [1,2,3]

//[empty*5]
let arr2 = new Array(5);

//[1,2,3]
let arr3 = new Array(1,2,3);

//[empty*5]
let arr4 = Array(5);

//[1,2,3]
let arr5 = Array(1,2,3);

//[1,2]
let arr6 = Array.of(1,2);

//['H','e','l','l','o',' ','W','o','r','l','d']
let arr7 = Array.from("Hello World");

                以上这几个语句都可以创建array。我们用的最多最推崇的还是第一个与最后一个。值得注意的是arr2和arr4并不会返回“[5]”。即一个数组中仅有一个元素的数组,而是会返回“[empty*5]”,它会开辟五个元素的位置给这个数组,即长度为5且未初始化的数组。而最后一个创建数组的形式是将iterable的object 或者 array-like的object转化为数组。例如:将string,HTML DOM 里的 node list转化为数组。

2.数组中的元素加入,删除,拷贝

        1.push将元素加入数组尾部并返回更新后的数组长度:

let array = [1,2,3];

//[1,2,3,4]; newLength = 4
let newLength = array.push(4);

        2.unshift将元素加入数组头部并返回更新后的数组长度:    

let array = [1,2,3];

//[4,1,2,3]; newLength =2
let newLength = array.unshift(4);

        3.pop将数组最后一个元素删除并返回删除的元素:

let array = [1,2,3];

//[1,2]; lastEle = 3
let lastEle = array.pop();

        4.shift将数组头部第一个元素删除并返回删除的元素:

let array = [1,2,3];

//[2,3]; firstEle = 1
let firstEle = array.shift();

         5.splice在数组中间部位加入删除元素:

let array = [1,2,3];

//第一个参数为开始的索引值,这里设为1,也就是从第二个元素开始
//第二个参数为要删除几个元素,这里我们不删除任何元素,就设为0
//第三个参数及之后的参数:即我们要添加的元素,根据需要,要几个就写几个,这里我们就添加一个‘four’
//[1,'four',2,3]
array = array.splice(1,0,'four');


//删除中间元素
array = [1,2,3];
//[1,3]
array = array.splice(1,1);

//删除和添加同时发生--替换
array = [1,2,3];
[1,4,5,3]
array = array.splice(1,1,4,5);

//清空数组
array = [1,2,3]
[]
array = array.splice(0);


//将数组从第二个元素开始以后的元素删除
array = [1,2,3];
[1]
array = array.splice(1);

         6.slice选取范围内的数组中的元素进行拷贝:

let array = [1,2,3];
//slic = [1,2]
//第一个参数为范围的开始索引
//第二个参数为范围的结束索引(结束索引不包含在拷贝的范围内)
//slice也是可以使用负索引,跟splice用法一样,从尾部开始计算
let slic = array.slice(0,2);
//slice = [2,3]
let slice = array.slice(1);




array = [1,2,3];
//利用slice对数组进行拷贝是很常见的
//copyOfArray = [1,2,3];
copyOfArray = array.slice();

        值得注意的是用slice进行拷贝之后的数组和直接用等号赋值不同:等号赋值为引用,即两个变量皆指向同一个数组,而slice则是指向不同的数组,如下例子:

let array = [1,2,3];
//变量assignedArray和变量array指向的是同一块内存地址,这块内存地址存着数组的首部
let assignedArray = array;
//变量copyOfArray指向的是不同的内存地址,即使这块地址存的值跟array指向的值是一样的
let copyOfArray = array.slice();

//当array指向的地址中的数组变化了,不会影响copyOfArray指向的值
array.push(4);

//array = [1,2,3,4]
//assignedArray = [1,2,3,4]
//copyOfArray = [1,2,3]

        7.concat:将两个或多个数组组成一个数组:

let arr1 = [1,2,3];
let arr2 = [4,5];
let arr3 = [6,7];

//temp1 = [1,2,3,4,5]
let temp1 = arr1.concat(arr2);

//temp2 = [1,2,3,4,5,6,7]
let temp2 = arr1.concat(arr2,arr3);

未完待续~

举报

相关推荐

0 条评论