• 引用类型 ( 对象定义 )——Array 类型


    本文地址:http://www.cnblogs.com/veinyin/p/7607293.html 

    一个数组中可以存储不同类型的值,可以混合存储数字、字符串、对象等

    1 创建数组

    1.1 构造函数

    1 var colors = new Array();       //自动长度
    2 
    3 var colors = new Array(20);     //长度为20

    1.2 数组字面量

    1 var colors = ["red","yellow","blue"];
    2 
    3 var colors = [];        //空数组

    2 检测数组

    if(Array.isArray(value)) statement

    3 转换方法

    3.1 toString()

    alert(colors.toString());

    3.2 toLocaleString()

    3.3 valueOf()

    alert(colors.valueOf());

    3.4 join()

    alert(colors.join("||"));       //用 || 分隔各数组项

    4 栈方法

    4.1 插入数据

    colors.push("value");

    4.2 弹出数据

    var value = colors.pop();

    5 队列方法

    5.1 正向操作,数组后端添加,前端取出

    5.1.1  插入数据

    colors.push("value");

    5.1.2 取出数据

    var value = colors.shift();

    5.2 反向操作,数组前端添加,后端取出

    5.2.1 插入数据

    colors.unshift("value");

    5.2.2 取出数据

    var value = pop();

    6 重排序

    6.1 数组项逆序排列

    nums.reverse();

    6.2 数组项升序排列

    nums.sort();

    sort() 函数可以接受一个比较函数作为参数,以便指定哪个值位于哪个值前面

     1 var num = [0,1,5,10,15];
     2     document.getElementById("index").innerHTML = num.sort().join("||");
     3     num.sort(compare);
     4     document.getElementById("index2").innerHTML = num.join("||");
     5 };
     6 function compare(num1,num2){
     7     if(num1 > num2) {
     8         return 1;
     9     }
    10     else if(num1 < num2){
    11         return -1;
    12     }
    13     else{
    14         return 0;
    15     }
    16 }

    第一个结果是 sort() 排序,先比较第一个字符,再比较第二个字符

    第二个结果是使用了参数的结果,完全升序,将 return 的正负 1 交换,则实现完全降序

    7 concat()

    将参数添加到数组末端,可接受一个或多个参数

    num.concat(12,34,45,23);

    8 slice()

    8.1 一个参数

    slice(num);
    //返回下标为 num 到数组末尾的所有数据项

    8.2 两个参数

    slice(num1,num2);
    //返回下标为 num1 到 num2-1 的所有数据项

    9 splice()

    9.1 删除

    nums.splice(0,2);
    //删除下标为 0 开始的两个数据项

    9.2 插入

    num.splice(2,0,"12","34","45","23");
    //插入位置,删除项数,插入内容

    插入数据为下标 2 处开始,删除项若不为0,删除原数组中开始项后的数据项

    9.3 替换

    nums.splice(2,1,"22");

    其实就是插入的变形

    10 位置方法

    10.1 indexOf()

    1 nums.indexOf(3);
    2 //在 nums 数组中从首端开始查询是否存在 3, 遇到第一个则返回其下标

    10.2 lastIndexOf()

    1 nums.lastIndexOf(3);
    2 //在 nums 数组中从末端开始查询是否存在 3, 遇到第一个则返回其下标

    11 迭代方法

    func 接收 3 个参数: 数组项的值,该项在数组中的位置,数组对象本身

    11.1 nums.every(func);

    所有数组项的 func 值均为 true 才返回 true, 否则返回 false

    11.2 nums.some(func);

    有一个数组项的函数值为 true 则返回 true

    11.3 nums.filter(func);

    返回函数值为 true 的项组成的数组

    11.4 nums.map(func);

    返回函数返回的结果组成的数组

    11.5 nums.forEach(func);

    数组每一项均运行函数,但无返回值

    12 缩小方法

    两个方法均接受两个参数: 调用函数、作为缩小基础的初始值

    两个方法区别, reduce() 正序遍历, reduceRight() 逆序遍历

    • reduce(func);

    • reduceRight(func);

    func 接收 4 个参数: 前一个值、当前值、项的索引、数组对象 测试似乎用到了前两个参数

    1 var sum = nums.reduce(function(prev,cur,index,array){
    2     return prev + cur;
    3 });
    感谢您的阅读及指正,让我们一起进步。
    欢迎联系我交流:veinyin@gmail.com
    作者:VeinYin
    博客地址:https://www.cnblogs.com/veinyin/
    如需转载请注明出处。
  • 相关阅读:
    二叉搜索树的第k个结点
    序列化二叉树
    把二叉树打印成多行
    按之字形顺序打印二叉树
    对称的二叉树
    二叉树的下一个结点
    删除链表中重复的结点
    链表中环的入口结点
    字符流中第一个不重复的字符
    基数排序的理解和实现(Java)
  • 原文地址:https://www.cnblogs.com/veinyin/p/7607293.html
Copyright © 2020-2023  润新知