zoukankan      html  css  js  c++  java
  • [译]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

  • 相关阅读:
    白盒测试 语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖(转)
    白盒测试--基本路径测试法详细说明和举例
    测试用例编写规范
    EF数据库连接时候出错
    元祖,字典,列表及其内置方法
    字符串、列表练习’
    数字,字符串,列表及其内置方法
    流程控制代码练习
    易出错知识点
    流程控制if、while、for
  • 原文地址:https://www.cnblogs.com/otakuhan/p/7707379.html
Copyright © 2011-2022 走看看