博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript数组常用的方法
阅读量:4577 次
发布时间:2019-06-08

本文共 1762 字,大约阅读时间需要 5 分钟。

改变原数组:

※ push,pop,shif,unshift,sort,reverse

※ splice

不改变原数组:

※ concat,join→split,toString,slice

push :后一位添加

pop :后一位删除

shift :前一位删除

unshift :向前一位添加

sort  :给数组排序(按ASCLL)

reverse :逆转顺序

splice :切片 

系统push方法的实现:

var arr=[1,2,3];    Array.prototype.push=function(){        for(var i=0; i

splice方法:

var arr=[1,1,2,2,3,3];    //arr.splice(从第几位开始,截取长度,在切口处添加新数据)    arr.splice(1,2);

arr.splice(1,1,0,0...)后面的参数无穷个

数组内部负数实现原理:

var arr=[1,2,3,4];    splice=function(pos){        pos += pos>0 ? 0:this.length;    }

ASCLL排序,不是理想中的排序,我们要按照数字大小排序,sort给我们留个编程接口让我们自己实现。里面添加匿名的function(必须要写两个形参){

规则}

1.必须写两形参

2.看返回值:1)当返回值为负数,那么前面的数放在前面

      2)为正数,那么后面的数放在前面

      3)为0,不动

var arr=[2,4,9,10,13,18,20];    arr.sort(function(a,b){        if(a>b){            return 1;        }else{            return -1;        }    })

简化前面代码:

var arr=[2,4,9,10,13,18,20];    arr.sort(function(a,b){        return a-b;    })

条件判断a-b是否大于0,直接返回a-b

给数组乱序:

 

var arr=[2,4,9,10,13,18,20];    arr.sort(function(){        return Math.random()-0.5;    })

 

按字符串长度排序:

var arr=["aaa","dddd","ccccd","dd","abcddddd"];    arr.sort(function(){        return a.length-b.length;    })

按字节长度排序:

function retBytes(str){            var num=str.length;//接收字符串长度            for(var i=0;i
255){
//判断字符是中文还是英文字符 num++;//中文字符字节长度+1 } } return num; } var arr=['ac邓','bcd邓','ccccc老邓','dddddccc','dfhionnnangh']; arr.sort(function (a,b){ return retBytes(a)-retBytes(b);//比较字节是长度 })

concat拼接,不改变原数组

slice截取,不改变原数组

join连接,参数必须字符串类型

split和join互逆的,按参数拆开

字符串拼接,这样不好,字符串放在栈内存,原始值放在栈内存存储,栈先进后出,放在箱底里的东西,箱子上面的东西拿出来再放进去,拿出来再拼到一起,来回折腾栈,效力低。

 

数组是散列存储结构,是堆内存,散列结构,效率会高。

 

转载于:https://www.cnblogs.com/qingyang-0-0/p/9389211.html

你可能感兴趣的文章
2.5.2 优先队列
查看>>
Linux下配置c/c++编译环境-Emacs-转载博客园
查看>>
Jmeter将HTTP request报文体中的字符串转换为大写
查看>>
UVa 11572 - Unique Snowflakes (set+滑动窗口思想)
查看>>
UVA 10954 Add All (优先队列的妙用)
查看>>
【转帖】const 与 readonly 的区别
查看>>
POJ -1679(次小生成树)模板
查看>>
hdu 3172 Virtual Friends
查看>>
Web.xml配置详解
查看>>
vue cli3
查看>>
基于SpringBoot从零构建博客网站 - 设计可扩展上传模块和开发修改头像密码功能...
查看>>
myeclipse自动生成相应对象接收返回值的快捷键
查看>>
获取当前日期
查看>>
Python的富比较方法__le__、__ge__之间的关联关系分析
查看>>
第2课—第5节
查看>>
JavaScript简单的实例应用
查看>>
Vue.js——60分钟组件快速入门(下篇)
查看>>
【算法习作】字符串处理两例
查看>>
Day 29 _模块二 -hashlib_configparse_logging
查看>>
leetcode 19 删除链表的倒数第n个节点
查看>>