• JavaScript数据结构


    01.为什么使用数组

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>为什么使用数组</title>
    </head>
    <body>
    <script>
        // 保存班级中所有学生的名字
        var name1 = "Tom"
        var name2 = "Lily"
        var name3 = "Lucy"
        var name4 = "Lilei"
        var name5 = "Coderwhy"
    
        // 使用数组来保存学生名字
        var names = ["Tom", "Lily", "Lucy", "Lilei", "Coderwhy"]
    </script>
    </body>
    </html>

    02.创建和初始化数组

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>创建和初始化数组</title>
    </head>
    <body>
    <script>
        // 创建和初始化数组
        var daysOfWeek = new Array()
        var daysOfWeek = new Array(7)
        var daysOfWeek = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday',
            'Thursday', 'Friday', 'Saturday')
    
        // 直接赋值数组内容
        var daysOfWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday',
            'Thursday', 'Friday', 'Saturday'];
    
        // 获取数组的长度
    //    alert(daysOfWeek.length)
    //
    //    // 普通for方式遍历数组
    //    for (var i = 0; i < daysOfWeek.length; i++) {
    //        alert(daysOfWeek[i])
    //    }
    //
    //    // 通过foreach遍历数组
    //    daysOfWeek.forEach(function (value) {
    //        alert(value)
    //    })
    
        // 求菲波那切数列的前20个数字
        var fibonacci = []
        fibonacci[0] = 1
        fibonacci[1] = 1
    
        for (var i = 2; i < 20; i++) {
            fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2]
        }
    
        alert(fibonacci)
    
    </script>
    </body>
    </html>

    03.数组的常见操作

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>itjc8</title>
    </head>
    <body>
    <script>
        // 初始化一个数组
        var numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
        // 添加一个元素10到数组的最后位置
        // 方式一:
        numbers[numbers.length] = 10
    
        // 方式二:
        numbers.push(11)
        numbers.push(12, 13)
    
    //    alert(numbers)
    
        // 在数组首位插入一个元素
        for (var i = numbers.length; i > 0; i--) {
            numbers[i] = numbers[i-1]
        }
        numbers[0] = -1
    //    alert(numbers) // -1,0,1,2,3,4,5,6,7,8,9,10,11,12,13
    
        // 通过unshift在首位插入数据
        numbers.unshift(-2)
        numbers.unshift(-4, -3)
    //    alert(numbers) // -4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13
    
    //    // 删除最后的元素
    //    numbers.pop()
    //    alert(numbers) // -4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12
    //
    //    // 删除首位的元素
    //    for (var i = 0; i < numbers.length; i++) {
    //        numbers[i] = numbers[i+1]
    //    }
    //    numbers.pop()
    //    alert(numbers)
    //
    //    numbers.shift()
    //    alert(numbers)
    
        // 删除指定位置的几个元素
        numbers.splice(5, 3)
    //    alert(numbers) // -4,-3,-2,-1,0,4,5,6,7,8,9,10,11,12,13
    
        // 插入指定位置元素
        numbers.splice(5, 0, 3, 2, 1)
    //    alert(numbers) // -4,-3,-2,-1,0,3,2,1,4,5,6,7,8,9,10,11,12,13
    
        // 修改指定位置的元素
        numbers.splice(5, 3, "a", "b", "c")
        alert(numbers) // -4,-3,-2,-1,0,a,b,c,4,5,6,7,8,9,10,11,12,13
    </script>
    </body>
    </html>

    04.数组的合并

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <script>
    //    // 数组的合并
    //    var nums1 = [1, 2, 3]
    //    var nums2 = [100, 200, 300]
    //    var newNums = nums1.concat(nums2)
    //    alert(newNums) // 1,2,3,100,200,300
    //
    //    newNums = nums1 + nums2
    //    alert(newNums)
    //
    //    nums1.eve
    
        // 定义数组
        var names = ["abc", "cb", "mba", "dna"]
    
        // 在names中所有的元素后面拼接-abc
        var newNames = names.map(function (t) {
            return t + "-abc"
        })
        alert(newNames)
    
    //    // 获取names中所有包含'a'字符的元素
    //    var newNames = names.filter(function (t) {
    //        return t.indexOf("a") != -1
    //    })
    //    alert(newNames)
    
    //    // forEach的使用
    //    names.forEach(function (t) {
    //        alert(t)
    //    })
    
    //    // 判断数组中是否包含有a字符的字符
    //    var flag = names.some(function (t) {
    //        alert(t)
    //        return t.indexOf("a") != -1
    //    })
    //    alert(flag)
    
    //    // 判断数组的元素是否都包含a字符
    //    var flag = names.every(function (t) {
    //        return t.indexOf('a') != -1
    //    })
    //    alert(flag)
    </script>
    </body>
    </html>

    05.reduce方法

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <script>
        // 1.定义数组
        var numbers = [1, 2, 3, 4]
    
        // 2.for实现累加
    //    var total = 0
    //    for (var i = 0; i < numbers.length; i++) {
    //        total += numbers[i]
    //    }
    //    alert(total) // 10
    
        // 3.使用forEach
    //    var total = 0
    //    numbers.forEach(function (t) {
    //        total += t
    //    })
    //    alert(total)
    
        // 4.使用reduce方法
        var total = numbers.reduce(function (pre, cur) {
            return pre + cur
        })
        alert(total)
    </script>
    </body>
    </html>
  • 相关阅读:
    Java中的Date类型无法赋值给数据库的datetime类型
    在HTML中改变input标签中的内容
    sizeof计算类的大小
    UML类图,转载
    大端小段详解—转载
    leetcode练习
    linux基础
    排序算法和查找算法

    链表
  • 原文地址:https://www.cnblogs.com/hechunfeng/p/16790233.html
Copyright © 2020-2023  润新知