总结JavaScript对象——Array对象

JavaScript对象——Array对象

Array对象用于在变量中存储多个值,下标从0开始,一直到length-1
创建 Array 对象的语法:
new Array();
new Array(size);
new Array(element0, element1, …, elementn);

首先是Array的属性
1.constructor返回创建数组对象的原型函数

var test=new Array();//输出:This is an Array
// var test=true; 输出:This is a Boolean
if (test.constructor==Array){
	document.write("This is an Array");
}
if (test.constructor==Boolean){
	document.write("This is a Boolean");
}
if (test.constructor==Date){
	document.write("This is a Date");
}
if (test.constructor==String){
	document.write("This is a String");
}

2.length设置或返回元素的数组个数

var fruits=["apple","banana","orange"];
// 设置数组长度:
fruits.length=5;
document.write(fruits);
//输出:apple,banana,orange,,

// 返回元素的数组个数:
document.write(fruits.length);
//输出:5

3.prototype允许你向数组添加属性或方法
语法:Array.prototype.name=value
在JavaScript对象中,Prototype是一个全局属性

function people(name,grade){
	this.name=name;
	this.grade=grade;
}
var alice=new people("Alice",98);
people.prototype.age=null;
alice.age=19;
document.write(alice.age);
//输出:19

接下来是Array的方法
1.concat():连接两个或者更多的数组,并返回结果(不改变原数组)

var arr0=[1,2,"a",true];
var arr1=["false",9,false];
document.write(arr0.concat(arr1,"hello"));
//输出: 1,2,a,true,false,9,false,hello
document.write(arr0);
//输出:1,2,a,true

2.copyWithin():从数组指定位置拷贝元素到数组另一个指定位置中(改变原数组)

var arr0=[1,2,"a",true];
document.write(arr0.copyWithin(1,3));
// 把下标为3的元素的值拷贝到下标为1的元素上
//输出:1,true,a,true 

3.entrise():返回数组的可迭代对象
把可以通过for…in…这类语句迭代读取一条数据供我们使用的对象称之为可迭代对象

var arr0=[1,2,"a",true];
var a=arr0.entries();
document.write(a.next().value+"<br>");//输出:0,1
document.write(a.next().value+"<br>");//输出:1,true
document.write(a.next().value+"<br>");//输出:2,a
document.write(a.next().value+"<br>");//输出:3,true

4. every():检测数组中的每个元素是否都满足条件

function get_Age(age){
	return age>=18;
}
var age=[15,18,25,22];
document.write(age.every(get_Age));//输出:false

5.fill():用一个固定值填充数组
语法: array.fill(value, start, end)
参数: value:填充的值, start:起始位置, end:填充终止位置(不包括)

var arr2=[12,25,36,45];
document.write(arr2.fill(1));
//输出:1,1,1,1
var arr3=[19,96,6,"a",45,89];
document.write(arr3.fill("hello",1,4));
//输出:19,hello,hello,hello,45,89 

6.filter():检测元素,返回数组中符合条件所有元素的数组(不改变原数组)

function search_Age(age){
	return age>=18;
}
var age=[15,18,25,22];
document.write(age.filter(search_Age));
//输出:18,25,22

7. find():返回符合传入函数条件的第一个数组元素
8.findIndex():返回符合传入函数条件的数组元素下标

function search_Age(age){
	return age>=18;
}
var age=[15,12,25,22];
document.write(age.find(search_Age)+"---"+age.findIndex(search_Age));
//输出:25---2

9.forEach():数组每个元素都执行一次回调函数

function for_Each(item,index){
	document.write("index["+index+"]"+"---"+item+"<br>");
}
var arr4=[89,5,6,53];
document.write(arr4.forEach(for_Each));
//输出:
//index[0]---89
//index[1]---5
//index[2]---6
//index[3]---53
//undefined 

10.from():通过给定的对象中创建一个数组
from() 方法用于通过拥有 length 属性的对象或可迭代的对象来返回一个数组
如果对象是数组返回 true,否则返回 false

var arr5=Array.from("hello");
if(arr5 instanceof Array){
//instanceof:测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型
	document.write(arr5);
}
else{
	document.write("该对象不是数组!");
}
//输出:h,e,l,l,o 

11.includes() :用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false
12. indexOf():搜索数组中的元素,并返回它所在的位置

var arr5=["he","l","l","o"];
document.write(arr5.includes("l")+"---"+arr5.indexOf("l"));
//输出:true---1

13.isArray():判断一个对象是否为数组
语法:Array.isArray(obj)

var arr5=["he","l","l","o"];
document.write(Array.isArray(arr5));
//输出:true

14.join(seperator):返回一组由指定拼接符拼接成的字符串

var arr1=["false",9,false];
document.write("join()的结果是:"+arr1.join()+"<br>");
//输出:join()的结果是:true,false,1,5,9,
document.write("join('')的结果是:"+arr1.join('')+"<br>");
//输出:join('')的结果是:truefalse159
document.write("join('/')的结果是:"+arr1.join('/')+"<br>");
//输出:join('/')的结果是:true/false/1/5/9/
document.write("join('#')的结果是:"+arr1.join('#')+"<br>");
//输出:join('#')的结果是:true#false#1#5#9#

15.keys():返回数组的可迭代对象,包含原始数组的键

var arr0=[1,2,"a",true];
var b=arr0.keys();
document.write(b.next().value+"<br>");//输出:0
document.write(b.next().value+"<br>");//输出:1
document.write(b.next().value+"<br>");//输出:2
document.write(b.next().value+"<br>");//输出:3

16.lastIndexOf():搜索数组中的元素,并返回它最后出现的位置

var color=["red","yellow","red","blue","black"];
document.write(color.lastIndexOf("red"));
//输出:2

17.map():返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值(不会改变原数组)

var arr6=[1,9,36];
document.write(arr6.map(Math.sqrt));
//输出:1,3,6 

18.push():从数组末尾添加新值,并返回数组的长度
19.pop():从数组末尾删除元素,并返回被删除元素的值
这里用一个小练习来举例:

var arr10=[];
var num=parseInt(Math.random()*10);
document.write("次数为:"+num+"<br>");
for(var i=0;i<num;i++){
	var a=parseInt(Math.random()*10);
	arr10.push(a);
	document.write(arr10+"<br>");
}
for(var i=num;i>0;i--){
	document.write(arr10.pop()+"<br>");
}

因为是随机数,所以每次输出结果都不一样,这里我放上自己的运行结果:
次数为:3
2
2,9
2,9,6
6
9
2

20.shift() :把数组的第一个元素从其中删除,并返回第一个元素的值。
21.unshift():向数组的开头添加一个或更多元素,并返回新的长度。
这里用一个小练习来举例:

var arr13=[];
var num1=parseInt(Math.random()*10);
document.write("次数为:"+num1+"<br>");
for(var i=0;i<num1;i++){
	var a=parseInt(Math.random()*10);
	arr13.unshift(a);
	document.write(arr13+"<br>");
}
for(var j=num1;j>0;j--){
	document.write(arr13.shift()+"<br>");
}

因为是随机数,所以每次输出结果都不一样,这里我放上自己的运行结果:
次数为:3
2
7,2
1,7,2
1
7
2

22.reduce():将数组元素计算为一个值(从左到右)
23.reduceRight():将数组元素计算为一个值(从右到左)

function myfunction(a,b){
	return a-b;
}
var arr7=[1,2,3,4,5];
document.write(arr7.reduce(myfunction));//输出:-13
document.write(arr7.reduceRight(myfunction));//输出:-5

24.reverse():颠倒元素位置

var arr7=[1,2,3,4,5];
document.write(arr7.reverse());
//输出:5,4,3,2,1 

25.slice(start,end)切片获取,不包括end

var arr1=["true",false,1,5,9];
document.write("获取下标为1到3的数组片段:"+arr1.slice(1,4)+"<br>");
//输出:获取下标为1到3的数组片段:false,1,5
document.write("获取的片段:"+arr1.slice(1)+"<br>");
// 默认从设置的下标开始全部取完
//输出:获取的片段:false,1,5,9,
document.write("获取下标为-6到-4的数组片段:"+arr1.slice(-6,-3));
//输出:获取下标为-6到-4的数组片段:true,false,1

26.splice(start,count,e1,e2)从start开始,删除count个元素,并将e1,e2插入(改变了原数组)

var arr1=["true",false,1,5,9];
var arr3=arr1.splice(2,3,"hei",6);
document.write("修改之后的数组为:"+arr1+"<br>");
//输出:修改之后的数组为:true,false,hei,6,
document.write("裁剪下来的数组为:"+arr3+"<br>");
//输出:裁剪下来的数组为:1,5,9

27.some():检测数组中是否有元素符合指定条件

function get_Age(age){
	return age>=18;
}
var age=[15,12,25,22];
document.write(age.some(get_Age));
//输出:true

28.sort():快速排(改变原数组)
可以排序字符,无法比较异位数字
使用数字排序,必须通过一个函数作为参数来调用
函数指定数字是按照升序还是降序排列
从小到大 a-b 从大到小b-a

var arr9=[1,23,69,456];
document.write("不用函数排列数字:"+arr9.sort()+"<br>");
//输出:不用函数排列数字:1,23,456,69
function mysort1(a,b){
	return a-b;
}
function mysort2(a,b){
	return b-a;
}
document.write("使用函数正序排列数字:"+arr9.sort(mysort1)+"<br>");
//输出:使用函数正序排列数字:1,23,69,456
document.write("使用函数倒叙排列数字:"+arr9.sort(mysort2)+"<br>");
//输出:使用函数倒叙排列数字:456,69,23,1
document.write("该函数改变了原数组顺序:"+arr9);
//输出:该函数改变了原数组顺序:456,69,23,1

29.toString():将数组类型转化为字符串类型

var arr1=["true",false,1,5,9,undefined];
document.write("toString()的结果是:"+arr1.toString()+"<br>");
//输出:toString()的结果是:true,false,1,5,9,
document.write("类型为:"+typeof(arr1.toString())+"<br>");
//输出:类型为:string
document.write("长度为:"+arr1.toString().length);
//输出:长度为:17

30.valueOf():返回Array对象的原始值,不会改变原数组,即获取数组的原始写法(不会改变原数组)

var arr1=["true",false,1,5,9,undefined];
document.write("valueOf()的结果是:"+arr1.valueOf()+"<br>");
//输出:valueOf()的结果是:true,false,1,5,9,
document.write("类型为:"+typeof(arr1.valueOf())+"<br>");
//输出:类型为:object
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值