2021-09-30 15:00:00 by wst
javascript在学习VUE的过程中,各种数组的操作,整的我有点晕乎。这次下定决心,全部整理一遍,以此记录:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组操作</title>
</head>
<body>
    <script>
        // ---------外部循环-------------
        var arr = [10, 20, 30, 40]
        // 外部for循环迭代
        for(let i=0;i<arr.length;i++){
            console.log(i, arr[i])
        }
        // 外部for-in迭代
        for(let i in arr){
            console.log("new", arr[i])
        }
        // 外部for of循环
        for(let i of arr){
            console.log("of", i)
        }
        // ------------数组自带方法-----------
        // 1. concat 联结两个或多个数组
        var arr1=[1,2,3] 
        var arr2 = [4,5]
        var arr3 = arr1.concat(arr2)
        console.log(arr1, arr3)
        // 2. join 用于把数组中所有元素放入一个字符串中
        var arr = [2,3,4]
        console.log(arr.join())
        console.log(arr.join(";"))
        // 3. push 向数组末尾添加一个或多个元素,并返回新的长度
        var a = [2,3,4]
        var b = a.push(5)
        console.log("push", a,b)
        // 4. pop 删除并返回素组的最后一个元素
        var arr = [3,4,5]
        console.log("pop", arr.pop())
        console.log(arr)
        // 5. shift 删除数组的第一个元素,并返回这个元素,改变原数组
        var arr = [3,4,5]
        console.log("shift", arr.shift())
        console.log(arr)
        // 6. unshfit 向数组开头添加一个或多个元素,并返回新长度,改变原数组
        var arr = [3,4,5]
        console.log("unshift", arr.unshift(3, 6))
        console.log(arr)
        // 7. slice 返回一个新数组,包含[start,end)的arr中的元素,不修改元素数组
        var arr = [3,4,5,6,7,8]
        console.log("slice", arr.slice(2,4))
        console.log(arr)
        // 8. splice 删除从index开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换哪些被删除的元素;
        // 返回被删除的元素,改变原数组
        var arr = [3,4,5,6,7,8]
        console.log("splice", arr.splice(1, 0, 100)) //在第一个位置插入元素100
        console.log("splice", arr.splice(2, 3)) //从第二个元素开始,删除3个
        // 9. sort 排序, 改变原数组
        var fruit = ['apple', 'banana', 'pear', 'cherry']
        console.log("before", fruit)
        fruit.sort()
        console.log("sort:", fruit)
        // 10. reverse 反转数组,改变原数组
        var arr = [100, 20, 200]
        console.log("reverse", arr.reverse())
        // 11.indexOf 和 lastIndexOf 查找元素的位置
        var arr = [12, 20, 80, 45, 80]
        console.log("search", arr.indexOf(20, 0))  // 从起始位置往后找
        console.log("search", arr.indexOf(50, 0))
        console.log("last search", arr.lastIndexOf(80, 4)) // 从起始位置往前找
        // 12. every 对数组的每一项都运行给定的函数, 如果都为true则返回true,否则返回false
        var arr = [100, 200, 300]
        function devid(element, index, ar){
            return element > 200
        }
        console.log("every", arr.every(devid))
        // 13. some 对数组的每一项都运行给定的函数,只要有一项为true,则返回true
        function judge(element, index, ar){
            return element > 1000
        }
        console.log("some", arr.some(judge))
        // 14. filter 对数的每一项都运行给定的函数,返回结果为true的项组成的数组;
        var words = ["spray", "limit", "elite", "exuberant", "destruction", "present", "happy"];
        var longWords = words.filter(function(word){
        return word.length > 6;
        });
        console.log("filter", longWords)
        // 15. map 对数组的每一项都运行给定的函数,返回值组成一个新的数组
        var numbers = [1,5,10,15]
        var doubles = numbers.map((element,index)=>element * 2)
        console.log("map", doubles)
        // 16. forEach遍历数组
        const items = ['item1', 'item2', 'item3']
        const lengthArr = []
        items.forEach((val, index, ar)=>lengthArr.push(val.length))
        console.log("foreach", lengthArr)
        // 17. reduce,对数组元素进行计算,这里为累加
        s = arr.reduce((s,e)=>s+e, 0) // s 为上一次的计算结果,e为当前元素,0为计算结果的初始值
        console.log("sum", s)
        // es6新增的操作方法
        // 18. find 查找数组中符合规则的第一个元素,并返回它
        var arr = [1, "2", 3, 4, "2"]
        console.log("find", arr.find(n=> (typeof n) === 'number'))
        // 19. findIndex 查找数组中符合规则的第一个元素,返回它的下标
        var arr = [1, "2", 3, 4, "2"]
        console.log("findIndex", arr.findIndex(n=> (typeof n) === 'number'))
        // 20. 查找元素(附加示例,如报错,可删除)
        let data = [
            {name:'张三', key:0},
            {name:'李四', key:1},
            {name:'王五', key:2},
            {name:'老六', key:3}
        ]
        // 目标对象的key
        let key = 2
        const target = data.find(item => item.key === key);
        console.log(target)//{name:'王五', key:2}
        // 21. 查找元素的下标
        let data = [
            {name:'张三', key:0},
            {name:'李四', key:1},
            {name:'王五', key:2},
            {name:'老六', key:3}
        ]
        // 目标对象的key
        let key = 2
        const target = data.findIndex(item => item.key === key);
        console.log(target)//2
    </script>
</body>
</html>
运行方法:把此内容粘贴到一个html文件中,并使用浏览器打开即可。
如有问题,欢迎探讨!
 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    