本文翻译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

最新文章

  1. ASP.NET MVC 路由(三)
  2. EasyUI中控件汉化问题
  3. 安装openJDK 8
  4. 洛谷 P1541 乌龟棋 Label:O(n^4)的dp
  5. 【转】C# 重写WndProc 拦截 发送 系统消息 + windows消息常量值(1)
  6. Java [Leetcode 290]Word Pattern
  7. linux中的sticky bit
  8. istio入门(01)istio是什么?
  9. Taurus.MVC 2.3 开源发布:增强属性Require验证功能,自带WebAPI文档生成功能
  10. docker 基础 之安装
  11. 格式化输出=========》format 和 %
  12. zabbix3.0.4添加对指定进程的监控
  13. python-flask基本应用模板
  14. android设备兼容性
  15. MIT-6.824 MapReduce
  16. git开发部署流程
  17. Bootstrap - select2
  18. Java-Runoob-高级教程-实例-字符串:06. Java 实例 - 字符串查找
  19. [java实现]常见算法之字符串操作
  20. vue组件调用(全局调用和局部调用)

热门文章

  1. 现网CPU飙高,Full GC告警
  2. layui.js框架的启发
  3. UGUI transform
  4. Unity4.6 UGUI 图片打包设置(小图打包成图集 SpritePacker)
  5. 试用 Eagle 9.1
  6. [转]A记录和CNAME记录的区别
  7. java服务覆盖率统计 jacoco ant
  8. asp.net自动将页面中的所有空间置为不可用以及将所有文本框置空
  9. Hybrid APP混合开发
  10. ICanPay介绍