javascript核心技术(二十一)内置构造函数详解(五)Array 数组类常用方法汇总

[复制链接]
查看: 1617|回复: 31
发表于 2023-1-23 14:44:02 | 显示全部楼层 | 阅读模式
Array是一个封装了一系列数组属性和方法的内置构造函数,Array是JS中最为重要的一个内置构造函数,请大家务必掌握。

创建一个Array类型的数据,与Boolean一样,也具有以下三种方式
// 字面量方式
var arr1 = ['a','b','c'];
// 构造函数方式
var arr2 = new Array('a','b','c');
// 直接调用函数
var arr3 = Array('a','b','c');
console.log(arr1,arr2,arr3)

javascript核心技术(二十一)内置构造函数详解(五)Array 数组类常用方法汇总

Array的方法分为以下三类:
1、访问器方法
访问器方法指的是调用该方法,对象本身不会被修改,计算结果会以方法的返回值给出。
注意:在JS中,字符串也可以被当做数组使用,但仅限于concat方法和slice方法。

方法名 解释 举例
concat() 合并数组,返回合并好的数组;参数可以指定一到多个。
slice() 截取数组,返回截取后的数组;第一个参数指定开始截取的位置,第二个参数结束位置(不指定则截取到结尾)
join() 把数组合并成字符串,返回字符串;可以指定一个分隔符(默认是逗号)

//concat
var arr1=['a','b','c'];
var arr2=['d','e','f'];
var arr3=arr1.concat(arr2);
console.log(arr3);

//slice
var arr3=arr1.slice(1,2);
console.log(arr3);

//join
var str=arr1.join('|');
console.log(str);


javascript核心技术(二十一)内置构造函数详解(五)Array 数组类常用方法汇总

2、修改器方法
修改器方法指的是,调用该方法,对象本身会被修改。

方法名 解释 举例
push() 在数组的后面添加一个或多个元素,返回添加了新数组之后数组的长度
unshift() 在数组的前面面添加一个或多个元素,返回添加了新数组之后数组的长度
pop() 删除数组最后一个元素,返回被删的元素。
shift()         删除数组的第一个元素,返回被删的元素。
splice(开始位置,删除数量,替换数据1, 替换数据2,. . .,替换数据N) 给数组添加、删除或替换元素。 返回被删掉的元素数组(如果没删元素就是空数组)
sort() 对数组进行排序。返回排好序的数组。
reverse() 翻转数组。返回翻转之后的数组。

//push
var arr1=['a','b','c'];
var arr2=['d','e','f'];
arr1.push('hello');
console.log('push结果:'+arr1);

//unshift
var arr1=['a','b','c'];
arr1.unshift('hello');
console.log('unshift结果:'+arr1);

//pop
var arr1=['a','b','c'];
arr1.pop();
console.log('pop结果:'+arr1);

//shift
var arr1=['a','b','c'];
arr1.shift();
console.log('shift结果:'+arr1);

//splice
var arr1=['a','b','c'];
arr1.splice(1,1,'hello');
console.log('splice结果:'+arr1);

//sort
var arr1=['b','a','c'];
arr1.sort();
console.log('sort结果:'+arr1);
//注意:这里我们只演示了sort的基本用法,sort排序还支持传入一个函数,以后再专门讲一下sort方法。

//reverse
var arr1=['a','b','c'];
arr1.reverse();
console.log('reverse结果:'+arr1);


javascript核心技术(二十一)内置构造函数详解(五)Array 数组类常用方法汇总

3、ES6新增的方法
这些方法也都是访问器方法,都需要回调函数作为参数。

方法名 解释 举例
forEach() 用于数组遍历,需要一个回调函数作为参数
filter() 从原数组中提取满足条件的元素组成新数组并返回, 需要一个回调函数作为参数;
map() 回调函数的返回值(true或者false)决定对应的元素是否在新数组中
返回一个元素个数与原数组一样的新数组,需要一个回调函数作为参数
回调函数返回什么,新数组的元素就是什么。
every() 返回布尔值,要求每个元素都满足条件才得到true,需要一个回调函数作为参数。
some() 返回布尔值,只要一个元素满足条件就可以true,需要一个回调函数作为参数。
reduce() 用于综合计算,需要一个回调函数作为参数,第二个参数指定初始值
回调函数接收三个参数:①上一次回调的结果 ②当前的元素 ③ 索引
reduceRight() 同 reduce 一样,只是从后向前遍历。
indexOf()         返回指定元素在数组中第一次出现的位置。
lastIndexOf() 返回指定元素在数组中最后一次出现的位置。

//forEach
var arr1 = ['a', 'b', 'c', 'e'];
arr1.forEach((a,b,c)=> {
  console.log(a,b,c);
  if(a=='c'){
    console.log('遍历到了c');
  }
});


//map
var arr = [0,2,4,6,8];
var newArr = arr.map(a=>{
        console.log(a)
        return a/2;
});
console.log(newArr);


//filter
var arr1 = [0,2,4,6,8];
var newArr = arr1.filter(a=>{
    if(a>=4){
        return a;
    }
});
console.log(newArr);


//every
var arr1 = [1,2,4,6,8];
var bool=arr1.every(a=>{
    return a>0;
});
console.log(bool);//true

//或者这样写
var arr1 = [1,2,4,6,8];
var bool=arr1.every(a=>{
    if(a>0){
        return a;
    }
});
console.log(bool);//true


//some
var arr1 = [0,0,0,0,8];
var bool=arr1.some(a=>{
    return a>0;
});
console.log(bool);//true

//或者这样写
var arr1 = [0,0,0,0,8];
var bool=arr1.some(a=>{
    if(a>0){
        return a;
    }
});
console.log(bool);//true


//reduce有初始值
var arr = [1,2,3,4];
var sum = arr.reduce((pre, item) => {
    return pre + item
}, 10)
console.log(sum) // 20

//reduce无初始值
var arr = [1,2,3,4];
var sum = arr.reduce((pre, item) => {
    return pre + item
})
console.log(sum) // 10


//indexOf
var arr = ['a','b','c','c','d'];
console.log(arr.indexOf('c')) // 2

//lastIndexOf
var arr = ['a','b','c','c','d'];
console.log(arr.lastIndexOf('c')) // 3



请注意:以上这些方法全部需要传入一个函数作为参数,我们在传参时为了书写方便,写的都是箭头函数,例如()=>{},它等同于function(){},大家目前只要明白这一点就可以了,后面我们会单独对箭头函数进行讲解的。
另外,以上这些方法的功能非常强大,不仅仅可以实现以上功能,由于大家目前还不具备深度使用的能力,所以目前我们只讲这些,能把以上的用法搞清楚就已经很不错了。
再次强调,Array非常重要,请大家务必掌握。
ok,我们下一篇再继续。



易博软件介绍

0

主题

11

帖子

6

积分

营销入门

Rank: 2

积分
6
发表于 2023-2-15 17:49:24 | 显示全部楼层
谢谢了,我是大一的,刚刚编程入门,这篇文章对我以后的学习有很大的帮助~

0

主题

20

帖子

11

积分

营销入门

Rank: 2

积分
11
发表于 2023-2-27 17:52:41 | 显示全部楼层
我不是计算机系的,但是也想从事程序员之类的工作,今年找工作,遇到种种挫折,今天读到这篇文章,受益匪浅啊!非常感谢,值得深思!

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-3-10 01:16:54 | 显示全部楼层
其实编程一开始并没有太多的“路”和灵感,编的程序多了,也便有了。。。。  FOR i=学习 TO 实践  Print String(i, 成功些)  Print  Next i   
发表于 2023-3-20 15:51:06 | 显示全部楼层
感受很深不知同我这样的菜鸟何时才能展翅高飞哎。。。。。。。
发表于 2023-3-27 11:55:46 | 显示全部楼层
哈哈  科学 !!!!!!!!  恩 对我这样的初学者 基础基础再基础  

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-4-2 09:12:33 | 显示全部楼层
你写出了所有编程序人的心声  不错!

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-4-7 08:23:24 | 显示全部楼层
很好```受教了``
发表于 2023-4-12 07:14:32 | 显示全部楼层
精辟,一个人的目标,不能只是想,而是要做,要做就要努力。  这篇文章对看过的人,一定很有帮助,激励学习的斗志。

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-4-17 04:22:49 | 显示全部楼层
深有感触。。感到的确要自我反省了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|Archiver|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表