首页 / java教程

    Javascript如何进行数组转换与排序?

    类型:原创      发布者:青灯夜游2018-09-15 16:05:17

    本章给大家介绍Javascript如何进行数组转换与排序,让大家了解Javascript中数组转换与排序的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    数组的转换

    我们在项目的开发过程中,数据类型之间的转换有着非常重要的作用,而数组转换成其他数据类型是我们常见的一种。

    toString

    该方法是对数组转换成字符串,数组的每一个元素都会调用 「toString」方法 ,返回一个新字符串。该字符串是以数组中的每一个元素的字符串形式拼接而成,且元素之间用逗号分隔。

    定义没看懂,我们看一个例子肯定立刻就明白!

    //语法
    array.toString()

    案例1

    const numbers = [1, 2, 3, 4, 5];
    const result = numbers.toString();
    console.log(result); //1,2,3,4,5
    console.log(typeof  result); //string

    案例2

    const numbers = ["A", "B", "C"];
    const result = numbers.toString();
    console.log(result); //A,B,C
    console.log(typeof  result); //string
    //利用 reduce 方法模拟 toString 的执行过程
    const numbers = [1, 2, 3, 4, 5];
    const result = numbers.reduce((prev, current) => {
        return  prev.toString() + "," + current.toString();
    });
    console.log(result); //1,2,3,4,5

    看到这里应该会有人疑问,是不是只能用逗号分隔呢?如果我用其它字符分隔可行吗?可以告诉你「toString」方法肯定是不行了,但是我们可以利用其他方法进行。

    老规矩,我们还是会在每个方法的后面看看兼容。

    1.png

    join

    该方法也是将一个数组转换成字符串,返回一个新的字符串。

    方法会将数组的每一个元素转换成字符串,然后再用给定的字符去拼接成一个新的字符串返回给我们。

    该方法接受一个参数:就是我们给定的分隔符。

    //语法
    array.join(separator)

    虽说语法看上去比较简单,但是有几点我们需要注意的

    参数是可选的,如果没有参数默认为逗号(,)

    参数可以为空字符串(""),这时会返回一个没有任何字符分隔的字符串

    如果数组的元素中有 undefined 或者null,则会被转化为空字符串("")

    参数可以为空格,元素会以空格分隔

    const numbers = [1, 2, 3, 4, 5];
    const result1 = numbers.join();
    console.log(result1);//1,2,3,4,5
    const result2 = numbers.join("");
    console.log(result2);//12345
    const result3 = numbers.join(" ");
    console.log(result3);//1 2 3 4 5
    const result4 = numbers.join("-");
    console.log(result4);//1-2-3-4-5
    const result5 = numbers.join("A");
    console.log(result5);//1A2A3A4A5

    「sort」方法的兼容性如何呢?直接上图。

    2.png

    数组的排序

    数组的排序用到的场景有很多,比如表格的升序与降序,数据从大到小排列或者按照某些规则去排列等等都会用到排序,如何有效到使用数据到排序方法,首先你要对这些方法有一定的了解才能使用比较恰当的方法。

    reverse

    从名称我们应该就能猜出该方法的作用,该方法就是将数组中的元素颠倒顺序。

    //语法
    array.reverse()
    //案例
    const numbers = [1, 2, 3, 4, 5];
    numbers.reverse();
    console.log(numbers); //[5, 4, 3, 2, 1]

    方法相对比较简单,也没什么好解释的,但是应用场景比较少,在实际的项目中我们并不是那么简单的数据结构,那么简单的排序规则,下面我们来重点介绍一个非常牛逼而且非常灵活的一个排序方法。