• W3School-JavaScript笔记五


    数组的属性与方法

    添加数组元素
    var array = ["Cat", "Dog"];
    array.push("Fish","Goat");
    //此时数组里的元素变成了4个

    数组的长度属性
    array.length
    array[array.length]

    添加超过长度属性的值
    array[6]="Person";
    //此时array变成了["Cat", "Dog", "Fish", "Goat", empty × 4, "Person"]
    //其中的empty即孔,undefined

    在 JavaScript 中,数组只能使用数字索引。而不能使用命名索引的数组。
    假如使用命名索引,js会把数组重定义为标准对象。之后所有的数组方法和属性将产生错误结果。
    var person = [];
    person["firstName"] = "Bill";
    person["lastName"] = "Gates";
    person["age"] = 62;
    var x = person.length; // person.length 将返回 0
    var y = person[0]; // person[0] 将返回 undefined

    在 JavaScript 中,数组使用数字索引。
    在 JavaScript 中,对象使用命名索引。
    数组是特殊类型的对象,具有数字索引。

    避免使用new来创建数组对象
    var points = new Array(); // 差
    var points = []; // 优

    typeof array 会返回object
    所以判断对象是否是数组:
    1.Array.isArray(fruits); // 返回 true
    ECMAScript 5标准规定,但老浏览器不支持该协议
    2.x.constructor.toString().indexOf("Array") > -1; //自己定义一个function来判断
    3.如果对象由给定的构造器创建,则instanceof返回true
    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    fruits instanceof Array // 返回 true

    数组常用的方法:
    JavaScript 方法 toString() 把数组转换为数组值(逗号分隔)的字符串。//Banana,Orange,Apple,Mango
    join() 方法也可将所有数组元素结合为一个字符串。//Banana * Orange * Apple * Mango
    pop() 方法从数组中删除最后一个元素 //fruits.pop(); 删除掉fruits[fruits.length]
    push() 方法(在数组结尾处)向数组添加一个新的元素
    shift() 方法会删除首个数组元素,并把所有其他元素“位移”到更低的索引。
    unshift() 方法(在开头)向数组添加新元素,并“反向位移”旧元素。//fruits.unshift("Lemon");
    覆盖元素,更改元素--直接使用索引(下标),重新给这个位置赋值 //fruits[2]="Pear"

    delete fruits[0] //该位置的元素会变为undefined

    splice() 方法可用于向数组添加新项
    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    fruits.splice(2, 1, "Lemon", "Kiwi"); //从下标2开始插入,原先的数组在插入的位置删掉几个原先的元素,剩下的参数都是插入的元素
    //Banana,Orange,Lemon,Kiwi,Mango

    splice()方法可以在指定位置删除指定个数的元素
    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    fruits.splice(0, 1); //删除掉了第1个元素

    concat() 方法通过合并(连接)现有数组来创建一个新数组:
    var myGirls = ["Cecilie", "Lone"];
    var myBoys = ["Emil", "Tobias", "Linus"];
    var myChildren = myGirls.concat(myBoys); // 连接 myGirls 和 myBoys
    //Emma,Isabella,Jacob,Michael,Ethan
    还可以连接多个数组:arr1.concat(arr2,arr3);

    slice() 方法用数组的某个片段切出新数组。
    var citrus = fruits.slice(3); //从参数位置,截取后面的所有元素
    var citrus = fruits.slice(1, 3); //取位置1到位置3的元素,第一个元素为原数组1位置的元素,新数组的长度为3-1,原数组不变。
    //效果类似subString

    JS中所有的对象都有toString()方法,在必要时,js会自动将数组转为toString()

    sort() 方法以字母顺序对数组进行排序
    reverse() 方法反转数组中的元素

    var points = [40, 100, 1, 5, 25, 10];
    points.sort(function(a, b){return a - b}); //内部的函数称为比值函数

    使用Math
    function myArrayMin(arr) {
    return Math.min.apply(null, arr);
    }
    function myArrayMax(arr) {
    return Math.max.apply(null, arr);
    }

    比较属性排序
    var cars = [
    {type:"Volvo", year:2016},
    {type:"Saab", year:2001},
    {type:"BMW", year:2010}];
    cars.sort(function(a, b){return a.year - b.year});

  • 相关阅读:
    取球问题
    汉字首字母
    上三角
    循环小数
    拓扑排序
    倒水
    equals方法使用技巧
    Java库中的集合
    win10安装Redis方法以及基本配置
    c、c++函数随机
  • 原文地址:https://www.cnblogs.com/bruceChan0018/p/14970004.html
Copyright © 2020-2023  润新知