高频数组基础操作,你还记得吗?

数组拼接字符串 Array.join([','])

已有数组返回选定的一个元素 Array.slice(start[,end]) //不影响原数组

删除元素,并向数组添加新元素

可以删除index后的N个元素(可为0),并追加任意元素。
即可以根据索引删除或添加数组元素
复制代码

Array.splice(index,N[,item1,.....,itemX]) //改变原数组

连接(拼接)数组 Array.concat(Array1[,Array2,ArrayN]) //不改变原数组

快速复制数组(hack) Array.concat()

排序数组(改变原数组) Array.sort([sortby]) // sortby:排序方式,默认字母顺序排序a-z、0-9

排序数字数组 Array.sort(function(a,b){return a - b}) //小到大 Array.sort(function(a,b){return b - a}) //大到小

逆转数组顺序 Array.reverse() //改变原数组并返回数组

数组追加元素 Array.push(1[,2,3]) //改变原数组并返回length

删除数组最后一个元素

Array.pop() //改变原数组并返回最后一个元素
[1,2,3,4,5].pop() //return 5
复制代码

删除数组第一个元素

Array.shift() //改变原数组并返回第一个元素
复制代码

数组开头添加元素 Array.unshift(1[,2,3]) //改变原数组并返回length

数组转为字符串 Array.toString() //返回去左右中括号结果,对象变成'[object Object]'

indexOf

Array.prototype.indexOf = Array.prototype.indexOf || function(item) {//扩展数组原型
    for (var i = 0, j = this.length; i < j; i++) {
        if (this[i] === item) {
            return i;
        }
    }
    return -1;
}

//[1,2,3,4,5].indexOf("1")
//return 0

//[1,2,3,4,5].indexOf("6")
//return -1
复制代码

数组去重(打乱顺序,按字母排序找出重复,在原数组删除)

Array.prototype.distinct = function(){ //扩展数组原型链
	var self = this;
	var _a = this.concat().sort();
	_a.sort(function(a,b){
		if(a == b){
			var n = self.indexOf(a);
			self.splice(n,1);
		}
	});
	return self;
};
复制代码

判断是否数组

value 是数组返回 true 不是返回false,伪数组不会通过检测

value instanceof Array;
复制代码

清空数组

清空数组不能使用 delete 关键字,应

var arr = [0,1,2,3,4];
arr.length = 0;
console.log(arr);
复制代码

伪数组

定义

  • 按索引方式存储数据;

  • 具有length属性;

  • 没有数组的push、shift、pop等方法;

      function的arguments对象,还有getElementsByTagName、childNodes等返回的NodeList对象,或者自定义的某些对象(sizzle.js)
    复制代码

证明定义

function make(){return arguments;}
var fakeArr = make(1,2,3,4,5)
var arr = [1,2,3,4,5]
fakeArr.push("6")
arr.push("6")
复制代码

转换为数组

Array.prototype.slice.call({  
 0:"likeke",  
 1:12,  
 2:true,  
 length:3  
});  
//["likeke", 12, true]  
复制代码

资料参考: w3school JavaScript Array对象

转载于:https://juejin.im/post/5c6e122be51d452e7c11559b

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值