JavaScript基础--内置对象之Array对象

1. 数组对象的创建

前面在介绍数组的时候,已经介绍过了,这里不再赘述。

创建数组对象的两种方式
① 字面量方式
② new Array()

2. 检测是否为数组

instanceof 运算符,可以判断一个对象是否属于某种类型
Array.isArray()用于判断一个对象是否为数组,isArray() 是 HTML5 中提供的方法

var arr = [1,2,3,'red','green'];  // 创建了一个数组
var obj = {};  // 创建了一个空的对象
console.log(arr instanceof Array); // true
console.log(obj instanceof Array); // false
console.log(Array.isArray(arr)); // true
console.log(Array.isArray(obj)); // false

3. 添加删除数组元素的方法

3.1 push(参数1,.....)

push() 在数组末尾添加一个或多个元素,并返回新的数组长度,会改变原数组。

var arr = ['吕布', '小乔', '曹操', '周瑜']
console.log(arr.push('大乔'));  // push()返回值为:新数组的长度 5
console.log(arr); // ['吕布', '小乔', '曹操', '周瑜', '大乔']  改变了原数组

arr.push('貂蝉','孙策');  // 可以一次添加多个元素,元素之间以英文状态下的逗号隔开

3.2 pop()

pop() 删除数组最后一个元素,无参数,返回值是它删除的元素的值,会改变数组

let arr = ['奥迪', '宝马', '奔驰'];
let a = arr.pop();  // 删除数组的最后一个元素
console.log(a); // 返回值是删除的元素--奔驰
console.log(arr); // 会改变原数组,即删除的元素没有了

3.3 unshift(参数1,....) 

unshift() 在数组最前面添加一个或多个元素,并返回新的数组长度,会改变原数组。

let arr = ['奥迪', '宝马', '奔驰'];
let b = arr.unshift('马自达');
console.log(b); // 返回值是新数组的长度 4
console.log(arr); // 会改变原数组,即原数组增加了新元素

3.4  shift()

shift() 删除数组第一个元素,无参数,返回值是它删除的元素的值,会改变数组

let arr = ['奥迪', '宝马', '奔驰'];
let c = arr.shift();  // 删除数组的第一个元素
console.log(c); // 返回值是删除的元素 奥迪
console.log(arr); // 会改变原数组,即删除的元素没有了

3.5 splice( 参数1,参数2,参数3)

splice() 指定位置删除元素,或者指定位置添加元素,会改变原数组。

① 第一个参数表示:该元素所在数组的位置(索引号)
② 第二个参数表示:删除几个元素,如果不删除,只添加,那该参数就写0
③ 第三个参数表示:添加的内容,可以添加多个元素,如果不需要添加那就省略该参数即可

let arr = ['奥迪', '宝马', '奔驰'];
let a = arr.splice(1, 1); // 表示从索引为1这个元素开始删除一个元素,即删除 宝马
console.log(a); // 返回值 ['宝马']  是一个数组
console.log(arr); // 会改变原数组,即原数组的 宝马 已被删除

let arr = ['奥迪', '宝马', '奔驰'];
let b = arr.splice(1, 1, '本田', '马自达'); // 表示从索引为1这个元素开始删除一个元素,并且同时从这个位置开始增加2个元素
console.log(arr); // ['奥迪', '本田', '马自达', '奔驰']  会改变原数组

4. 数组排序

4.1 sort()

sort() 对数组元素进行排序,会改变原数组,返回新数组。

 let arr1 = [1, 3, 5, 2, 8, 4, 9];
console.log(arr1.sort());  // [1, 2, 3, 4, 5, 8, 9]

但是sort()排序,如果数字不全是个位数,会出现一定问题,因为它是按照首个数字进行比较的,比如35>9,但是对于它来说,因为9>3,所以会把35排在前面。所以为了解决这个问题,sort()后面的小括号里要写个函数,如下:

let arr2 = [73, 23, 5, 63, 1, 20, 8];
arr2.sort(function(a, b) {
   // return a - b; // 升序排序  
   return b - a; // 降序排序
})
console.log(arr2);

4.2  reverse() 

reverse() 颠倒数组中元素的顺序,即反过来排列,无参数,会改变原数组,返回新数组。

// 要求:把这个数组从大到小排序
// 分析:我们知道直接使用不带参数的sort(),实现的是从小到大排序,但是现在需要从大到小排序,
// 所以可以先让其从小到大,然后借助reverse进行反转。当然我们也可以直接使用sort(),然后括号里写上函数
let arr = [1, 3, 5, 2, 8, 4, 9];
arr.sort();  // 将数组从小到大排序
arr.reverse(); // 颠倒顺序,即变成了从大到小排序
console.log(arr);

 5. 获取数组索引方法

5.1 indexOf()

indexOf()  表示查找给定元素在数组中的第一个索引,也就是说就是查找元素,在数组中有多个,也只会找出排在最前面的那个 元素的索引号,如果元素不存在,返回-1。这个是非常有用的一个知识点,经常用于查重。

let arr = ['奥迪', '宝马', '奔驰', '马自达', '宝马', '大众' , '吉利'];
let index = arr.indexOf('宝马'); 
console.log(index);  // 1
let index1 = arr.indexOf('本田');  
console.log(index1); // -1  如果数组不存在该元素,则会返回-1

5.2 lastIndexOf()

lastIndexOf()  表示查找给定元素在数组中的最后一个的索引,如果元素不存在,返回-1

let arr = ['奥迪', '宝马', '奔驰', '马自达', '宝马', '大众' , '吉利'];
let index = arr.lastIndexOf('宝马'); 
console.log(index);  // 4  
let index1 = arr.lastIndexOf('本田');  
console.log(index1); // -1  如果数组不存在该元素,则会返回-1

5.3 案例: 数组去重 

有一个数组[5, 4, 26, 9, 4, 8, 5, 14],要求去除数组中重复的元素。

var arr = [5, 4, 26, 9, 4, 8, 5, 14];
var arr1 = [];  // 定义一个新数组用于存储去重后的元素
for (var i = 0; i < arr.length; i++) {
// 使用indexOf()可以返回数组元素的位置,如果不存在该元素,则返回为-1
   if (arr1.indexOf(arr[i]) == -1) {  // 如果等于-1,说明数组元素不存在于新数组中
     arr1.push(arr[i]);   // 则将此元素添加到该数组中去
   }
}
console.log(arr1);   // [5, 4, 26, 9, 8, 14];

6. 数组转换为字符串

 6.1 toString()

toString()  把数组转换成字符串,并且用逗号分隔每一项。

var arr = ['吕布', '小乔', '曹操', '周瑜'];
console.log(arr.toString());  // 吕布,小乔,曹操,周瑜

6.2 join('分隔符') 

join() 把数组中的所有元素转换为一个字符串,具体使用什么进行分隔,就看小括号里填入的是何种分隔符。

var arr = ['吕布', '小乔', '曹操', '周瑜'];
console.log(arr.join()); // 括号里无内容,则表示以逗号分隔
console.log(arr.join('')); // 括号里空字符,则表示元素间无分隔
console.log(arr.join('*')); // 括号里空字符,则表示元素间以*分隔

 

 7. 合并两个数组

concat() 合并两个数组 ,括号里填数组名,不会改变原数组。

let arr1 = [1, 3, 5, 2, 8, 4, 9];
let arr2 = [73, 23, 5, 63, 1, 20, 8];
arr3 = arr1.concat(arr2);  // 将arr1与arr2合并,形成新数组arr3
console.log(arr3);  // [1, 3, 5, 2, 8, 4, 9, 73, 23, 5, 63, 1, 20, 8]

以上就是数组对象常用的一些属性和方法,当然Array对象的属性与方法远不止这些,但是这些是实际开发中最常用的,所以需要理解,并能灵活运用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值