美文网首页js笔记让前端飞程序员
js笔记二十之Array数组的查询,拼接,转字符串,排列(序)

js笔记二十之Array数组的查询,拼接,转字符串,排列(序)

作者: uplyw | 来源:发表于2018-05-14 21:45 被阅读26次

    数组查询

    • slice

    数组的查询
    参数: slice(n,m) 从索引n开始找到索引m处(不包含m)
    返回值: 把找到的部分以一个新数组返回
    原来数组不变

    1. slice(n) 从索引n找到末尾
    2. slice(0)或slice() 数组克隆,克隆一份和原来数组一模一样的新数组
    3. slice()支持负数索引,如果传递的索引为负数,浏览器解析的时候按照 总长度+负数索引来处理的
    var ary = [12,23,34,45,56,67,78,89,90];
    var ary1 = ary.slice(3,8)
    console.log(ary) // -> [12, 23, 34, 45, 56, 67, 78, 89, 90]
    console.log(ary1) // -> [45, 56, 67, 78, 89]
    

    数组拼接

    • concat

    将多个数组拼接在一起
    参数: 要拼接的内容(把要拼接的数组放在原数组后面),可以是一个数组,也可以是一些数据值
    返回值: 拼接后的新数组
    原数组不改变
    concat() 什么都不拼接相当于把 原数组克隆一个一模一样的新数组

    var ary = [12,23,34]
    ary.concat([45,56],'lilei') // -> [12, 23, 34, 45, 56, "lilei"]
    console.log(ary) // -> [12, 23, 34]
    

    数组转换为字符串

    • toString

    把数组转换为字符串(转换后的字符串以逗号分隔每一项)
    参数: 无
    返回值: 转换的字符串
    原有数组不变

    var ary = [12,23,34];
    ary.toString() // -> "12,23,34"
    console.log(ary) // -> [12, 23, 34]
    
    • join

    把数组按照指定的分割符转换为字符串,和字符串中的split相对应
    参数: 指定的连接符
    返回值: 连接后的字符串
    原数组不变

    var ary = [12,23,34];
    ary.join(" ") // -> "12 23 34"
    ary.join("+") // -> "12+23+34"
    console.log(ary) // -> [12,23,34]
    
    // 一直数组中的每一项, 想实现数组求和
    // 1. 利用循环
    var total = 0;
    for(var i=0;i<ary.length;i++){
        total += ary[i]
    }
    
    // 2. 利用join
    var total = eval(ary.join('+')); // -> 把字符串变为js表达式执行
    
    

    实现数组中的每一项的排序和排列

    • reverse

    把数组中的每一项倒过来排列
    参数: 无
    返回值: 排列后的新数组
    原来数组改变

    var ary = [1,23,2,34,21];
    ary.reverse();  // -> [21, 34, 2, 23, 1]
    console.log(ary) // -> [21, 34, 2, 23, 1]
    
    • sort

    实现数组的排序
    参数: 无或者回调函数
    返回值: 排序后的数组
    原有数组改变

    不传参数的情况下,可以给10以内的数字进行升序排列, 但是超过10的就无法处理了(多位数只识别第一位)

    var ary = [1,23,2,34,21];
    ary.sort();  // -> [1, 2, 21, 23, 34]
    console.log(ary) // -> [1, 2, 21, 23, 34]
    
    var ary = [1,23,2,34,21,12];
    ary.sort();  // -> [1, 12, 2, 21, 23, 34]  
    // -> 12 排在了2的前面,说明sort并不是按数字大小排序,而是只看数字第一位
    console.log(ary) // -> [1, 12, 2, 21, 23, 34]
    
    // -> 从小到大排序
    var ary = [1,23,2,34,21,12];
    ary.sort(function(a,b){return a-b});  // -> [1, 2, 12, 21, 23, 34]
    // -> 12 排在了2的前面,说明sort并不是按数字大小排序,而是只看数字第一位
    console.log(ary) // -> [1, 2, 12, 21, 23, 34]
    
    // -> 从大到小排序
    var ary = [1,23,2,34,21,12];
    ary.sort(function(a,b){return b-a});  // -> [34, 23, 21, 12, 2, 1]
    // -> 12 排在了2的前面,说明sort并不是按数字大小排序,而是只看数字第一位
    console.log(ary) // -> [34, 23, 21, 12, 2, 1]
    

    相关文章

      网友评论

        本文标题:js笔记二十之Array数组的查询,拼接,转字符串,排列(序)

        本文链接:https://www.haomeiwen.com/subject/veksdftx.html