JS中 数组与链表

JavaScript0138

JS中 数组与链表,第1张

常规数组: 数组元素内容是一种类型的元素,如const arr = [1,2,3,4],在存储空间是连续内存的

JS数组: 数组元素内容不是同一种类型的元素,如const arr = ['haha', 1, {a:1}],则在存储上是一段非连续空间。此时,JS 数组不再具有数组的特征,其底层其实是由链表来实现的

总结

链表的插入/删除效率较高,而访问效率较低;

数组的访问效率较高,而插入效率较低

/**

* 这个方法只算2个方程都是相加的方程组。

* @param num1 第一个方程的结果。

* @param num2 第二个方程的结果。

* @param beishu1 第一个方程X的倍数。(可不填,默认为1倍)

* @param beishu2 第一个方程Y的倍数。(可不填,默认为1倍)

* @param beishu3 第二个方程X的倍数。(可不填,默认为1倍)

* @param beishu4 第二个方程Y的倍数。(可不填,默认为1倍)

* 由于是从javascript脚本的Number对象取值的最小值算到最大值,所以比较慢。

*/

function getNumber(num1, num2, beishu1, beishu2, beishu3, beishu4){

    if(!beishu1) beishu1 = 1

    if(!beishu2) beishu2 = 1

    if(!beishu3) beishu3 = 1

    if(!beishu4) beishu4 = 1

    var n = new Number()

    var i = 0, j = i.MIN_VALUE

    i = i.MIN_VALUE

    while(i <= i.MAX_VALUE){

        while(j <= j.MAX_VALUE){

            if((i * beishu1 + j * beishu2) === num1 && (i * beishu3 + j * beishu4) === num2){

                alert("x:" + i + ", y:" + j)

                return

            }

            j++

        }

        i++

    }

}