JavaScript Array标准库

数组新建方法

  • 新建数组 var a =[1,2];
  • 构造函数:let a = new Array('1'),传入单个数字生成多少个空位,其余类型作为数组的元素

静态方法

  • 判断是否为数组 Array.isArray()

实例方法:

push()

在数组前在数组最后一个位置添加元素,返回数组长度,改变原数组

pop()

删除并返回数组的最后一个元素,改变原数组

shift()

删除并返回数组第一个元素,改变原数组

unshift()

在数组第一个位置添加元素,返回数组长度,改变原数组

join()

拼接数组成字符串,根据传入的参数作为分隔符,不提供参数默认逗号分隔,由此也有了许多的妙用:
数组转字符串:

var a = [1, 2, 3, 4];
a.join() // "1,2,3,4"

concat()

多个数组合并,将传入的参数添加到原数组

reverse()

颠倒数组顺序并返回

slice()

提取数组一部分,包含左边不含右边,省略第二个参数,一直返回到最后;一个参数都没有,返回原数组拷贝

		Array.prototype.slice.call({ 0: 'a', 1: 'b', length: 2 })
		// ['a', 'b']
		
		Array.prototype.slice.call(document.querySelectorAll("div"));
		Array.prototype.slice.call(arguments);

splice()

删除原数组元素,还可以新增元素,返回被删的元素,改变原数组

let a =  [4,3,2,1]
a.splice(2,1)
log(a) // [4,3,1].

sort()

字典序排序,也可传入函数,改变原数组

		[10111, 1101, 111].sort(function (a, b) {
		  return a - b;
		})// [111, 1101, 10111]
  • map() 遍历执行每一个元素,将处理后的元素组成新的数组返回
		let arr =  numbers.map(function (n) {
		  return n + 1;
		});
  • forEach() 与map() 类似,但无返回值,改变原数组
  • filter() 过滤数组元素,过滤后的元素组成新数组返回
		[1, 2, 3, 4, 5].filter(function (elem) {
		  return (elem > 3);
		})

some() every() ,some()

数组元素只要一个满足条件返回true,every()所有元素都满足条件才返回true

reduce(), reduceRight()

依次处理两个元素,最终返回运算值,例如计算数组中元素之和:
reduceRight() 只是和reduce()处理顺序相反,是从右往左处理元素

let res= [1,2,3,4].reduce((a,b)=>{
	return a+b;
} //10

数组拷贝:

关于数组复制一个坑点,不要使用 new Array() 的方法,只做到浅拷贝:

		let a = [1, 2, 3, 4]
		let b =new Array(a);
		a.pop(); //[1,2,3]

深拷贝

slice()

        let a = [1, 2, 3, 4]
        let b =a.slice();
        a.pop(); //[1,2,3,4]

concat()

        let a = [1, 2, 3, 4]
        let b =a.concat();
        a.pop(); //[1,2,3,4]

扩展运算符

        let a = [1, 2, 3, 4]
        let [...b] =a;
        a.pop(); //[1,2,3,4]

数组实例方法返回值

类似 push() pop() shift() unshift() splice() forEach()改变原数组的方法,返回的都不会是一个数组
若直接用在函数传参时会导致错误

func(arr.push(a))  //其实传入的数组长度

//正确做法
arr.push(a)
func(arr)
  • sort() 是个例外,改变原数组同时也返回新数组
  • map() 中会返回一个新的数组,而forEach()无返回,直接改变原有的值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值