[译]Javascript中的mutators
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单
源地址在此:
https://www.youtube.com/watch?v=PMsVM7rjupU&list=PL6n9fhu94yhUA99nOsJkKXBqokT3MBK0b
Javascript中有很多方法是可以用在数列对象上的.有的方法会改变数列对象,而有的则不会,那些会改变数列对象的方法叫做mutator方法
一下是一些非mutator的方法:
contains
indexOf
lastIndexOf
以下则是一些mutator方法
push
pop
shift
unshift
reverse
sort
splice
我们在20章讨论过push(),pop(),shift()和unshift()方法.在本次视频中我们将讨论
sort
reverse
splice
Javascript sort方法:将一个数列中的元素排序.默认状态下,sort()方法会把数列中的值转化成string并且比较这些strings从而达到排序的目的.但是这样只是对string很有效,对于数字的话则不然.我们来看个例子
例子:注意到string是很完美地被排序的
var myArray = ["Sam","Mark","Tom","David"]; myArray.sort(); document.write(myArray);
Output : David,Mark,Sam,Tom
现在,让我们来看看给数字排序的例子
var myArray = [20, 1 , 10 , 2, 3]; myArray.sort(); document.write(myArray);
Output : 1,10,2,20,3
注意到数字并没有按我们预期地排序.我们解决这个问题的方法就是给sort函数添加一个"比较函数"作为其参数.这个比较函数应该返回一个负数,0,或者正数
例子:
var myArray = [20, 1, 10, 2, 3]; myArray.sort(function (a, b) { return a - b }); document.write(myArray);
Output : 1,2,3,10,20
现在我们来讨论一下这个比较函数是如何工作的.这个函数有两个参数,(a,b)这个函数将a-
b的结果返回.如果返回值为
正数-则a比b大
负数-则a比b小
0-则a等于b
所以,基于返回的值,数列中的数字就可以被排序了
将数字降序排序:有两种方法
1.将(a-b)改为(b-a)
例子:
var myArray = [20, 1, 10, 2, 3]; myArray.sort(function (a, b) { return b - a }); document.write(myArray);
2.升序排序后然后再用reverse()函数来达到降序的目的
例子:
var myArray = [20, 1, 10, 2, 3]; myArray.sort(function (a, b) { return a - b }).reverse(); document.write(myArray);
Output : 20,10,3,2,1
Javascript reverse方法:将数列中的元素反向排序
Javascript splice方法:给数列中增加或者减少元素
格式:array.splice(index,deleteCount,item1,....itemX)
index - 必须,指定往哪个地方加入或者移除元素
deleteCount - 必须,指定要移除多少个元素.如果设为0,则不会有元素被移除
item1,.....,itemX - 非必须,指定要被加入数列中的元素
例子:
var myArray = [1,2,5]; myArray.splice(2, 0, 3, 4); document.write(myArray);
Output : 1,2,3,4,5
例子:
var myArray = [1,2,55,67,3]; myArray.splice(2, 2); document.write(myArray);
Output : 1,2,3
转载于:https://www.cnblogs.com/otakuhan/p/7707379.html
[译]Javascript中的mutators相关推荐
- [译] JavaScript 中的 CSS:基于组件的样式的未来
本文讲的是[译] JavaScript 中的 CSS:基于组件的样式的未来, 原文地址:CSS in JavaScript: The future of component-based styling ...
- [译]JavaScript中,{}+{}等于多少?
最近,Gary Bernhardt在一个简短的演讲视频"Wat"中指出了一个有趣的JavaScript怪癖:在把对象和数组混合相加时,会得到一些你意想不到的结果.本篇文章会依次讲解 ...
- [译]Javascript中的闭包(closures)
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- [译]JavaScript中的属性:定义和赋值的区别
原文:http://www.2ality.com/2012/08/property-definition-assignment.html 你知道吗?定义一个属性和为一个属性赋值是有区别的.本文解释了两 ...
- Javascript 中 Array.push 要比 Array.concat 快 945 倍
[译] Javascript 中 Array.push 要比 Array.concat 快 945 倍!
- [译] ES6+ 中的 JavaScript 工厂函数(第八部分)
本文讲的是[译] ES6+ 中的 JavaScript 工厂函数(第八部分), 原文地址:JavaScript Factory Functions with ES6+ 原文作者:Eric Elliot ...
- Javascript中的陷阱大集合【译】
参考:http://www.2cto.com/kf/201111/111203.html 昨天晚上在自己的个人技术博客上翻译了一篇有关Javascript的文章,今天想想还是把它投稿到博客园吧,大家可 ...
- 「译」javascript 中的 delete
在这篇文章中作者从<JavaScript面向对象编程指南>一书中关于 delete 的错误讲起,详细讲述了关于 delete 操作的实现, 局限以及在不同浏览器和插件(这里指 firebu ...
- 【译】JavaScript中的Callbacks
你是否遇到过"callbacks"一词,但是不知道这意味着什么?别着急.你不是一个人.许多JavaScript的新手发现回调也很难理解. 尽管callbacks可能令人疑惑,但是你 ...
最新文章
- 基于分类任务的信号(EEG)处理--代码分步解析
- 【漏洞复现】ThinkPHP5 5.x 远程命令执行(getshell)
- Java Servlet生成JSON格式数据并用jQuery显示
- 反编译工具Reflector下载(集成FileGenerator和FileDisassembler)
- LiveVideoStackCon 2021上海站 倒数计时:2
- 机器学习:如何在安卓上集成TensorFlow
- linux 用户 组区别吗,Linux系统的用户和用户组有什么区别
- 开源是如何让Android成为移动市场大佬的?
- 【计算机网络复习 数据链路层】3.5.5 CSMA-CA协议
- 前端基础-html-表格的结构标签(了解)
- angularJS之angular-datatable的方法
- SQL Server 2014中的混合云和Hekaton功能
- 编程入门先学什么python-编程入门先学什么比较好
- java 单体 启动优化_java设计优化之单例模式
- 微信开发之微信公众平台基本配置--服务器token验证(Java实现)
- win7官方原版iso镜像
- UML2.51边译边学-接口
- Ubuntu系统播放*.avi格式出错
- AVS2解码图像管理
- python写入excel文件追加写入_Python读写/追加excel文件Demo
热门文章
- 单片机p2.0引脚c语言,单片机p2.0?
- php mysql 类型_php mysql bigint 类型
- 全国计算机信息高新技术办公软件应用模块,全国计算机信息高新技术办公软件应用模块(Windows系列)教案.doc...
- php开启filtervar_PHP如何使用filter_var()函数?(代码示例)
- 真假签到题(签到+打表)
- linux如何用gcc编译c程序,Ubuntu之如何使用gcc编译C语言程序
- 2019交大计算机考研分数线,上海交大2019考研计算机软件与理论的复式分数..._考研_帮考网...
- 鸿蒙空间最高级,洪荒:我能进化万物
- spyder里import tensorflow报错显示没有tensorflow模块解决
- mybatis中的#{}与${}在原理上的区别