JS数组总结(一)

    除Object外,Array恐怕是ECMAScript中最常见的类型了,相比于其他语言来说,ECMAScript的数组中的每一项可以存放不同类型的值。

    首先数组的length不只是只读的,可以通过它在数组的末尾添加新项或移除项。

        添加新项:

var arr = ['a','b','c']
arr[arr.length] = 'd';//此时arr= ['a','b','c']

        移除项:
var arr = ['a','b','c'];
arr.length = 2;//此时arr = ['a','b']

    数组的方法:

1、push()方法将任意项添加到数组末端,参数以逗号分隔;

2、pop()方法移除数组末尾最后一项;

3、join()方法以拼接符拼接数组的每一项并返回字符串;

4、shift()方法移除数组第一项,并返回该值;

5、unshift()方法在数组的前端添加任意项,并返回新数组的长度;

6、sort()升序排列数组每一项;

7、reserve() 反转数组;

8、concat()拼接数组,将参数添加到数组末尾,可以变通的复制数组,复制后的数组与原数组并不指向同一地址;

9、slice() 接收一或两个参数,只有一个参数时,返回参数位置以后的所有数组项,当有两个参数时,返回两个参数位置中间的所有数组项;

10、splice()可以对数组进行插入、删除、替换操作 ,功能强大;

  • 插入:插入任意项在指定位置,接收三组参数:起始位置、0、插入值;
  • 删除:在指定位置删除任意项,接收两个参数:起始位置,要删除的项数;
  • 替换:在指定位置插入任意项并删除任意项,接收三组参数:起始位置、要删除的项数,插入值,要插入的项数并不一定等于要删除的项数;

11、indexOf()在数组中正向查找某个值,接收两个参数:要查找的项,起始位置(可选),返回该值在数组中的位置索引,若没有该值,返回-1;

12、lastIndexOf()在数组末端开始查找某个值,用法同indexOf();

13、forEach()对数组中的每一项进行操作,但不会影响原数组的值,接收两个参数:每一项运行的函数,运行该函数的作用域对象(可选);

14、map() 对数组中的每一项进行操作,参数同forEach(),返回函数调用后结果组成的新数组;

15、filter() 对数组每一项进行操作,返回满足条件结果组成的新数组;

16、every()对数组每一项进行操作,如果全部都满足条件,返回True,否则返回False;

17、some()对数组每一项进行操作,只要其中一项满足条件就返回True;

var arr = ['1','2','3','4'];
var filterResult = arr.filter(e => {
  return e > '2';
});
var mapResult = arr.map(e => {
  return e+'map';
});
var everyResult = arr.every(e => {
  return e > '5';
});
var someResult = arr.some(e => {
  return e > '2';
});
var forEachResult = [];
arr.forEach(e => {
  e = e + 'forEach';
  forEachResult.push(e);
})
console.log(arr);//["1", "2", "3", "4"]
console.log(filterResult);//["3", "4"]
console.log(mapResult);//["1map", "2map", "3map", "4map"]
console.log(arr);//["1", "2", "3", "4"]
console.log(everyResult);//false
console.log(someResult);//true
console.log(arr);//["1", "2", "3", "4"]
console.log(forEachResult);//["1forEach", "2forEach", "3forEach", "4forEach"]

18、reduce()迭代数组的所有项,并返回最终结果值,接收两个参数:每一项上调用的函数,归并基础的初始值(可选),每一项上调用的函数需要有4个参数:前一个值,当前值,项的索引,数组对象;

19、reduceRight()用法同reduce(),只不过是从数组的末端开始执行;

var arr2 = [1,2,3,4,5];
var sum = arr2.reduce( function(prev,cur,index,array) {
  return prev * cur;
},2)
console.log(sum);//240




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值