JavaScript数组常用的方法
改变原数组:
※ 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<arguments.length; i++){
this[this.length]=arguments[i];
}
return this.length;
}
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<str.length;i++){//遍历字符串
if(str.charCodeAt(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互逆的,按参数拆开

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

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

JavaScript数组常用的方法的更多相关文章
- javascript数组常用的遍历方法
本篇文章给大家带来的内容是关于javascript数组常用的遍历方法(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 前言 本文主要介绍数组常见遍历方法:forEach.m ...
- JS 数组常用的方法
数组常用的方法: x.toString()方法:任何对象都有toString方法. 将任何对象转为字符串. 一般不主动调用,系统在需要时自动调用 x.valueOf()方法:同toStr ...
- js 判断数组包含某值的方法 和 javascript数组扩展indexOf()方法
var questionId = []; var anSwerIdValue = []; ////javascript数组扩展indexOf()方法 Array.prototype.indexOf ...
- javascript中数组常用的方法
在JavaScript中,数组可以使用Array构造函数来创建,或使用[]快速创建,这也是首选的方法.数组是继承自Object的原型,并且他对typeof没有特殊的返回值,他只返回'object'. ...
- javascript中数组常用的方法和属性
前言 在javascript中,数组是一种非常重要的数据类型,我们时常会和它打交道,最近在开发项目中频繁的使用到数组,但是自己对数组的众多方法已经是非常模糊了,为了方便自己以后能够更好的使用数组中的属 ...
- JavaScript学习总结之数组常用的方法和属性
先点赞后关注,防止会迷路寄语:没有一个冬天不会过去,没有一个春天不会到来. 前言数组常用的属性和方法常用属性返回数组的大小常用方法栈方法队列方法重排序方法操作方法转换方法迭代方法归并方法总结结尾 前言 ...
- JavaScript数组常用操作
前言 相信大家都用惯了jquery或者underscore等这些类库中常用的数组相关的操作,如$.isArray,_.some,_.find等等方法.这里无非是对原生js的数组操作多了一些包装. 这里 ...
- 了解JavaScript 数组对象及其方法
数组在我目前学习过的编程语言中都可以见到, 形形色色的方法也数不胜数, 不过功能都一样, 最多也就是方法名稍稍有所不同, 老外也没个准啊, 如果英语比较好的同学对于学习方法(method)来说是很快的 ...
- Javascript数组求和的方法总结 以及由斐波那契数列得到的启发
一次面试中,面试官要求用三种不同的Javascript方法进行一个数字数组的求和,当时思来想去只想到了使用循环这一种笨方法,因此面试比较失败,在这里总结了六种Javascript进行数组求和的方法,以 ...
随机推荐
- HDU5411——CRB and Puzzle——————【矩阵快速幂优化dp】
CRB and Puzzle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...
- 【AngularJs】---angular-chart.js 图表报表
移步至我在百度经验的这篇文章: http://jingyan.baidu.com/article/a378c960b26636b3282830ad.html
- 基于HTTP协议之WEB消息实时推送技术原理及实现
很早就想写一些关于网页消息实时推送技术方面的文章,但是由于最近实在忙,没有时间去写文章.本文主要讲解基于 HTTP1.1 协议的 WEB 推送的技术原理及实现.本人曾经在工作的时候也有做过一些用到网页 ...
- one + two = 3
读入两个小于100的正整数A和B,计算A+B.需要注意的是:A和B的每一位数字由对应的英文单词给出. 输入 测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =", ...
- python面试题——爬虫相关
1.接触过几种爬虫模块 urllib.requests这两种爬虫模块. 2.robots协议是什么? 它就是一个防君子不防小人的协议,网站有一些数据不想被爬虫程序爬取,可以编写robots协议文件,明 ...
- RNQOJ [stupid]愚蠢的矿工(树形依赖背包)
题意 题目链接 Sol 树形依赖背包板子题 树形依赖背包大概就是说:对于一个点,只有选了它的父亲才能选自身 把dfs序建出来,倒过来考虑 设\(f[i][j]\)表示从第\(i\)个节点往后背包体积为 ...
- jQuery(四)(DOM一)
jQuery把复杂的代码简单化. 如果我们通过AJAX获取到数据之后然后才能确定结构的话,这种情况就需要动态的处理节点了 一.DOM节点的创建:创建div节点元素的属性和创建div节点元素的样式doc ...
- react-native 视频播放器(很不错哦)
第一步: npm i -S react-native-af-video-player(安装前:先安装: react-native-video.react-native-keep-awake.react ...
- 怎样解决putty终端乱码的方法
原文地址:https://jingyan.baidu.com/article/3aed632e5f00ae701080913a.html?qq-pf-to=pcqq.c2c 终端输入:echo $LA ...
- IOS Git源代码管理工具
.新建一个“本地仓库” $ git init .配置仓库 >告诉git你是谁 git config user.name lnj >告诉git怎么联系你 git config user.em ...