JavaScript数组属性、方法的个人笔记

一、数组属性

在这里插入图片描述
数组的属性有三种:
1.length,设置货返回数组子元素的个数。
2.constructor, 返回创建数组对象的原型函数,即function Array(){}。
3.prototype,向数组设置或者添加属性和方法。

var arr = [1,'a','哦'];
console.log(arr.length);
console.log(arr.constructor);
arr.length = 2;//改变数组长度
console.log(arr);

在这里插入图片描述

二、数组方法

以下方法会改变原数组

1.pop方法:将数组的最后一位剪切并返回,且无法传参

var arr = [1,2,3,4];
var num = arr.pop();
console.log(arr);
console.log(num);

在这里插入图片描述

2.shit/unshit方法:删除并返回数组的第一个元素/向数组的开头添加一个或更多元素,并返回新的长度

var arr1 = [1,2,3,4];
var num = arr1.shift(0);//传不传参没有影响
console.log(num);//shift会返回删除的子元素
console.log(arr1);
var arr2 = [5,6,7,8];
var num = arr2.unshift(4.8,4.9);//将参数添加开头
console.log(num);//unshift会返回新数组的长度
console.log(arr2);

在这里插入图片描述

3.reverse方法:返回逆反一个数组后

var arr1 = [1,2,3,4];
var arr2 = arr1.reverse();
console.log(arr2);

在这里插入图片描述

4.splice方法:添加或删除数组中的元素

arr.splice(从哪开始截取,截取多少个,截取后增加…)

var arr1 = [1,3,5];
var arr2 = arr1.splice(0,1,0,2);
//从0位开始,即在arr1中1的前面开始切口子,截取了一位(1)返回,然后添加了0,2
console.log(arr1+'\n'+arr2);

在这里插入图片描述

5.sort方法:数组排序

var arr1 = [3,1,5,2];
arr1.sort();//sort默认按(ASK码)排序
console.log(arr1);

在这里插入图片描述
如果想规定正/倒序:

var arr1 = [4,1,7,3];
var arr2 = [4,1,7,3]
arr1.sort(function (a,b){//这个函数系统会自动执行,用的是冒泡排序法
	return a-b;//如果返回正数,将参数里后者放前面,这里即为升序
});//这里返回a-b,系统会自动拿数组里从前往后两两对比
arr2.sort(function(a,b){
    return b-a;//如果返回负数,将参数里前者放前面,这里即为倒序
    //为0则保持不动
});
console.log(arr1);
console.log(arr2);

在这里插入图片描述
那么这里如果面试时让你把一个有序数组变成乱序?

var arr1 = [1,2,4,5,6];
arr1.sort(function(a,b){
	return Math.random() - 0.5;//只要返回的值的是正负,不拘于形式
});//sort默认按(ASK码)排序
console.log(arr1);

在这里插入图片描述

6.push方法:向数组的末尾添加一个或多个元素,并返回新的长度

var arr = [1,'a','呵'];
var num = arr.push(2,'b');
console.log(num+'\n'+arr)

在这里插入图片描述

以下方法不改变原数组

1.concat方法:连接两个或多个数组

var a = [1];
var b = [2];
var c = [3];
var arr = c.concat(b,a);
console.log(arr);

在这里插入图片描述

二.toString方法:把数组转换为字符串,并返回结果。

var arr = [1,'a'];
console.log(arr.toString());//由于日常很少用到的方法
Array.prototype.toString = function (){//就可以用前章讲的方法的重写
    return 123;//实现自己需要的功能
};
console.log(arr.toString());

在这里插入图片描述

三.slice方法:选取数组的的一部分,并返回一个新数组。

var arr = [1,2,3];
var n = arr.slice(1,2);//从(index)1开始,即arr中2的前面开始;到(index)2,即3的前面(不包括3)
//如果想得到某个数组的后面一块,需要arr.slice(x,arr.length)
console.log(n);

在这里插入图片描述

四.join方法:把数组中的所有元素通过指定的分隔符进行分隔。

var arr1 = [1,2,3,4];
var n = arr1.join('_');//用-连接成字符串
var m = arr1.join();//不传参,使用逗号作为分隔符。
console.log(n);
console.log(m);
//这里将一个字符plitf方法
var arr2 = n.split();//一个字符串分割成字符串数组
var arr3 = m.split('-');
console.log(arr2);
console.log(arr3);

在这里插入图片描述

这里讲解一个案例(了解):

var str1 = 'aa',//字符串是原始值(栈)
    str2 = 'bb',
    str3 = 'cc';
var arr = [str1,str2,str3];//数组是引用值(堆),这里利用散列,使得代码效率更高
arr.join('');//再分割成字符串

博主开始运营自己的公众号啦,感兴趣的可以关注“飞羽逐星”微信公众号哦,拿起手机就能阅读感兴趣的博客啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞羽逐星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值