zoukankan      html  css  js  c++  java
  • javascript数组array

    注意:1.array的length不是只读的。可以从数组的末尾移出项或者向数组中添加新项。看下面例子:

    var colors = ["red","yellow","blue"];
    colors.length = 2;
    console.info(colors[2]);
    结果:undefined
    原因:将length属性设置为2会移出最后一项。如果将length设置大于数组长度,则新增的每一项都是undefined值。

    利用length可以方便的在数组末尾添加新项,如:
    var colors = ["red","yellow","blue"];
    colors[colors.length] = "gray";
    colors[colors.length] = "white";

    toString()、toLocaleString()和valueOf()区别:

    toString()就是用字符串来代替对象。
    toLocaleString()就是根据不同的语言环境吧对象转成字符串,实际上totolocalstring()是有缺省参数的,如toLocaleString('ko-ka')是根据韩国的语言格式转化,显示出来就是鸟文。
    valueOf()就是一个获取对象原始值的方法,数组的原始值当然是它本身。

    在默认情况下,会以逗号分隔的字符串的形式返回数组项,而使用join()方法,则可以使用不同的分隔符。如:
    var colors = ["red","yellow","blue"];
    colors = colors.join("||");
    console.info(colors);
    结果:red||yellow||blue

    一、检测数组
    问题:如何确定某个对象是否是数组?
    解答:对于一个网页或者一个全局作用域而言,使用instanceof就可以达到结果。
    if(value instanceof Array){
    }
    instanceof作用于单一的全局执行环境。如果网页包含多个框架,实际上就会有2个以上的全局执行环境,从而存在两个不同版本的
    构造函数。如果从一个框架向另一个框架传入一个数组,那么传入的数组与第二个框架中原生创建的数组分别具有各自不同的构造
    函数。
    为了解决这个问题,ECMAScript新增了Array.isArray()方法来确定是不是数组。而不管它是哪个全局的执行环境。
    支持Array.isArray()方法的浏览器有IE9+,FireFox4+和Chrome

    栈方法
    栈是一种LIFO的数据结构,数组有push()pop()方法,可以实现类似栈的行为。
    push()可以接收任意数量参数,将其添加到数组末尾,并返回修改后的数组长度。
    pop()从末尾移出最后一项,减少数组的length,返回移出项
    队列方法
    队列:是FIFO数据结构,因为push()可以在末尾添加,只需要一个从数组前端取的项的方法就能实现队列。
    shift()能够移出第一项,并返回该项,数组长度减1。

    数组迭代方法:
    every()、filter()、forEach()、map()和some()
    例子:
    var numbers = [1,2,3,4,5,4,3,2,1];
    var everyResult = numbers.every(function(item, index,array){
      return (item > 2);
    });
    console.info(everyResult);

    var someResult = numbers.some(function(item, index,array){
      return (item > 2);
    });
    console.info(someResult);

    var filterResult = numbers.filter(function(item, index,array){
      return (item > 2);
    });
    console.info(filterResult);

    var mapResult = numbers.map(function(item, index,array){
      return (item > 2);
    });
    console.info(mapResult);

    结果:false   true   [3, 4, 5, 4, 3]   [false, false, true, true, true, true, true, false, false]
    every():数组传入的函数必须每一项都返回true,这个方法才返回true
    some():只要传入数组函数有一项满足,就返回true
    filter():将数组中满足条件的数据项组成新的数组返回
    map():在原始数组的基础上进行运算,并将每一项的结果组成新的数组返回

  • 相关阅读:
    MainFrm.cpp
    MyView.h
    我的东软实习项目一:车牌识别之MFC----MyView.cpp
    洛谷P1055 字符串的处理-----ISBN
    跳出多重循环------设置标志量
    单链表的创建及操作
    线性表的建立及运算
    JVM--你常见的jvm 异常有哪些? 代码演示:StackOverflowError , utOfMemoryError: Java heap space , OutOfMemoryError: GC overhead limit exceeded, Direct buffer memory, Unable_to_create_new_native_Thread, Metaspace
    JVM-gcRoots 和 强引用,软引用, 弱引用, 虚引用, 代码演示和应用场景
    JUC 并发编程--08,线程池,三大方法,七大参数,4种拒绝策略,代码演示
  • 原文地址:https://www.cnblogs.com/chenxiaocai/p/5477865.html
Copyright © 2011-2022 走看看