[译]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
[译]Javascript中的mutators的更多相关文章
- [译]JavaScript中,{}+{}等于多少?
最近,Gary Bernhardt在一个简短的演讲视频“Wat”中指出了一个有趣的JavaScript怪癖:在把对象和数组混合相加时,会得到一些你意想不到的结果.本篇文章会依次讲解这些计算结果是如何得 ...
- [译]Javascript中的错误信息处理(Error handling)
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- [译]Javascript中的闭包(closures)
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- [译]Javascript中的本地以及全局变量
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- [译]Javascript中的数列
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- [译]Javascript中的for循环
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- [译]Javascript中的do-while循环
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- [译]Javascript中的循环
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- [译]javascript中的依赖注入
前言 在上文介绍过控制反转之后,本来打算写篇文章介绍下控制反转的常见模式-依赖注入.在翻看资料的时候,发现了一篇好文Dependency injection in JavaScript,就不自己折腾了 ...
随机推荐
- [SP16580]QTREE7
luogu vjudge 题意 一棵树,每个点初始有个点权和颜色(输入会给你) 0 u :询问所有u,v路径上的最大点权,要满足u,v路径上所有点的颜色都相同 1 u :反转u的颜色 2 u w :把 ...
- 【LeetCode】001. TwoSum
题目: Given an array of integers, return indices of the two numbers such that they add up to a specifi ...
- ubuntu 迁移部分 / 目录下的存储空间到 /home目录
状况:当时给系统分区的时候,home和根目录都是25GB左右,突然发现home 目录不够用了,于是决定进行将根目录的部分空间挪移到home下去 主要方法:使用Gparted的LIve USB的方法. ...
- 媒体查询ipad,pc端
媒体查询 /* 判断ipad */ @media only screen and (min-device-width : 768px) and (max-device-width : 1024px){ ...
- Nginx报错 connect() failed (111: Connection refused) while connecting to upstream 的解决方法
今天访问公司的网站突然报错,抛出一些英文,提示看一下Nginx的error.log日志: cd /usr/local/nginx/logs/ 看到了error.log ,下一步 tail -n 2 ...
- mybatis 学习六 MyBatis主配置文件
在定义sqlSessionFactory时需要指定MyBatis主配置文件: <bean id="sqlSessionFactory" class="org.myb ...
- DataGridView上下方向键定位
/// <summary> /// DataGridView上下方向键定位 /// </summary> /// <param name="dgv"& ...
- 使用 Github 和 Hexo 快速搭建个人博客
导语 个人兴趣爱好特别广泛,喜欢捣鼓各种小东西自娱自乐.虽然都没能深入研究,但是自己的“孩子”还是很想拿出来遛遛得人一句夸奖的.所以刚学 Markdown 的时候很是有想过要搭个个人博客来玩玩,一来激 ...
- MySQL中varchar类型排序
-- +0后就转换INT类型排序 SELECT * FROM T_TEST ORDER BY (SORT + 0) DESC ;
- css水平居中(一)
第一种方法:使用text-align属性. 看到一篇博客,也不知道是不是我理解的问题,博客上说text-align可以是内联元素水平居中,我感觉这样的说法是不是有些不准确. text-align属性规 ...