• JavaScript -- 内置对象数组


     数组

    创建数组的基本方式有两种:

    1、使用 Array构造函数

    语法:new Array()

    小括号( )说明:

    (1)预先知道数组要保存的项目数量

    (2)向Array构造函数中传递数组应包含的项

    2、使用数组字面量表示法

    由一对包含数组项的方括号[ ]表示,多个数组项之间以逗号隔开。

    读取和设置值时,使用方括号[ ]并提供相应的索引

    说明:索引是从0开始的正整数

    //创建一个空的数组
    var  color = new Array();
    //给数组赋值
    color[0] = 'red';
    color[1] = 'yellow';
    color[2] = 'green';
    console.log(color);
    //创建时赋值,方法一
    var nums = new Array(1,3,57);
    console.log(nums);
    //创建时赋值,方法二
    var info = [6,'job',99]
    console.log(info)
    //取值,用索引
    console.log(info[1])

    结果:

    ["red", "yellow", "green"]
    [1, 3, 57]
    [6, "job", 99]
    job

    数组长度

    语法:array.length

    功能:获取数组array的长度

    返回值:number

    说明:

    1、通过设置length可以从数组的末尾移除项或向数组中添加新项。

    2、当把一个值放在超出当前数组大小的位置上时,数组就会重新计算其长度值,长度值等于最后一项的索引加1。

    var arr = ['a','b','c','d']
    console.log(arr.length); //数组的长度
    arr.length = 2;  //数组的长度保留前两个,其余的删掉
    console.log(arr);
    arr[99] = 100;
    console.log(arr.length);//最后一项的索引为99,所以长度为100

    结果:

    4
    ["a", "b"]
    100
    数组的遍历
    var arr = ['a','b','c','d']
    for (var i=0;i<arr.length;i++){
        console.log(arr[i])
    }

    push和unshift

    push语法:

    arrayObject.push(newele1,newele2,....,neweX)

    功能:

    把它的参数顺序添加到 arrayObject 的尾部。

    返回值:

    把指定的值添加到数组后的新长度。

    unshift语法:

    arrayObject.unshift(newele1,newele2,....,neweX)

    功能:

    把它的参数顺序添加到 arrayObject 的开头。

    返回值:

    把指定的值添加到数组后的新长度。

    //push
    var color = new Array('red','green');
    var len = color.push('blue','yellow');
    console.log(color);
    console.log(len);
    //unshift
    var num = [2,7,8,6];
    var size = num.unshift(99,66);
    console.log(num)

    结果;

    ["red", "green", "blue", "yellow"]
    4
    [99, 66, 2, 7, 8, 6]

    pop和shift

    pop语法:

    arrayObject.pop()

    功能:

    删除 arrayObject 的最后一个元素

    返回值:

    被删除的那个元素

    shift语法:

    arrayObject.shift()

    功能:

    删除 arrayObject中的第一个元素

    返回值:

    被删除的那个元素

    //pop
    var color = new Array('red','green');
    var n = color.pop();
    console.log(n);
    console.log(color);
    
    //shift
    var num = [2,7,8,6];
    var m = num.shift();
    console.log(m);
    console.log(num);

    结果:

    green
    ["red"]
    2
    [7, 8, 6]

    join

    语法:

    arrayObject.join(separator)

    功能:

    用于把数组中的所有元素放入一个字符串。

    返回值:字符串。

    var nums = [2,4,5];
    var numstr = nums.join(); //默认,分隔
    console.log(numstr);
    var words = ['left','right','top'];
    var wordstr = words.join('-');
    console.log(wordstr);

    结果:

    2,4,5
    left-right-top

    reverse

    语法:

    stringObject.reverse()

    功能:

    用于颠倒数组中元素的顺序。

    返回值:数组。

    var num = [2,7,8,6];
    num.reverse();
    console.log(num);

    结果:

    [6, 8, 7, 2]

    小练习:

    给一个数组strs = ['a','b','c','d'];,返回dcba

    var strs = ['a','b','c','d'];
    var newstr = strs.reverse().join('');
    console.log(newstr);

    sort

    语法:

    arrayObject.sort(sortby)

    功能:

    用于对数组的元素进行排序。

    返回值:数组。

    说明:

    1、即使数组中的每一项都是数值,sort()方法比较的也是字符串。

    2、sort()方法可以接收一个比较函数作为参数。

    var arr = [5,76,34,52,99,-3,56];
    //默认
    arr.sort()
    //降序
    arr.sort(function (a,b) {return b-a});
    //升序
    arr.sort(function (a,b) {return a-b});
    console.log(arr)

    concat

    语法:

    arrayObject.concat(arrayX,arrayX,......,arrayX)

    功能:

    用于连接两个或多个数组。

    返回值:

    数组。

    var arr1 = ['1','43','e'],
        arr2 = ['a','b','c',88],
        arr3;
    arr3 = arr1.concat(arr2,['77','mm']);
    console.log(arr3);

    结果:

    ["1", "43", "e", "a", "b", "c", 88, "77", "mm"]

    slice

    语法:

    arrayObject.slice(start,end)

    功能:

    从已有的数组中返回选定的元素。

    参数:

    start (必需)规定从何处开始选取,如果是负数,那么它规定从数组尾部开始算起的位置。

    end(可选)规定从何处结束选取,该参数是数组片断结束处的数组下标。

    说明:

    1、如果没有指定end,那么切分的数组包含从 start 到数组结束的所有元素。

    2、如果slice()方法的参数中有一个负数,则用数组长度加上该数来确定相应的位置

    返回值:数组

    var colors = ['red','green','blue','yellow'];
    var newColor = colors.slice(1,3);
    console.log(newColor);

    结果:

    ["green", "blue"]

    splice

    splice可以删除数组项,增加数组项,替换数组项。

    删除

    语法:

    arrayObject.splice(index,count)

    功能:

    删除从 index 处开始的零个或多个元素。

    返回值:

    含有被删除的元素的数组。

    说明:

    count是要删除的项目数量,如果设置为 0,则不会删除项目。

    如果不设置,则删除从index开始的所有值。

    var strs = ['a','b','c','d','e','f','g'];
    var delstr = strs.splice(2,2);
    console.log(delstr);
    console.log(strs);

    结果:

    ["c", "d"]
    ["a", "b", "e", "f", "g"]
    插入:

    语法:

    arrayObject.splice(index,0,item1,.....,itemX)

    功能:

    在指定位置插入值

    参数:

    Index:起始位置

    0:要删除的项数

    item1…itemX:要插入的项

    返回值:数组

    var strs = ['a','b','c','d','e','f','g'];
    var insertArr = strs.splice(3,0,'mmmm','nnnn','kkkk');
    console.log(insertArr);
    console.log(strs);

    结果:

    []
    ["a", "b", "c", "mmmm", "nnnn", "kkkk", "d", "e", "f", "g"]
    替换:

    语法:

    arrayObject.splice(index,count,item1,.....,itemX)

    功能:

    在指定位置插入值,且同时删除任意数量的项

    参数:

    Index:起始位置

    count:要删除的项数

    item1…itemX:要插入的项

    返回值:从原始数组中删除的项(如果没有删除任何项,则返回空数组)

    var strs = ['a','b','c','d','e','f','g'];
    var replacesttr = strs.splice(1,2,'XX','YY','ZZ');
    console.log(replacesttr);
    console.log(strs);

    结果:

    ["b", "c"]
    ["a", "XX", "YY", "ZZ", "d", "e", "f", "g"]

     indexOf

    语法:

    arrayObject.indexOf(searchvalue,startIndex)

    功能:

    从数组的开头(位置0)开始向后查找。

    参数:

    searchvalue:必需,要查找的项;

    startIndex:可选,起点位置的索引。

    返回值:

    number,查找的项在数组中的位置,没有找到的情况下返回-1。

    var nums = [2,4,6,8,89,322,7,6,21];
    var num1 = nums.indexOf(6);
    console.log(num1);
    var num2 = nums.indexOf(88);
    console.log(num2);
    var num3 = nums.indexOf(6,3);
    console.log(num3);

    结果:

    2
    -1
    7

    lastIndexOf

    语法:

    arrayObject.lastIndexOf(searchvalue,startIndex)

    功能:

    从数组的末尾开始向前查找。

    参数:

    searchvalue:必需,要查找的项;

    startIndex:可选,起点位置的索引。

    返回值:

    number,查找的项在数组中的位置,没有找到的情况下返回-1。

    var nums = [2,4,6,8,89,322,7,6,21];
    var num1 = nums.lastIndexOf(6);
    console.log(num1);
    var num2 = nums.lastIndexOf(88);
    console.log(num2);
    var num3 = nums.lastIndexOf(6,3);
    console.log(num3);

    结果:

    7
    -1
    2
  • 相关阅读:
    multi-task learning
    代码杂谈-python函数
    代码杂谈-or符号
    安装maven
    zsh
    mint linux的几个问题
    [软件] Omnigraffle
    无梯度优化算法
    根据pdf文件获取标题等信息
    计算广告-GD广告
  • 原文地址:https://www.cnblogs.com/zouzou-busy/p/11070509.html
Copyright © 2020-2023  润新知