JavaScript内置函数及数组的处理

🌷做一些数组的练习题,总结一下JavaScript的相关知识点

JavaScript的内置函数

  • 🍨 JavaScript内置函数可以分为5类

    • 常规函数

    • 数组函数

    • 日期函数

    • 数学函数

    • 字符串函数

常规函数9️⃣

  • alert()函数--显示警告对话框,包括一个🆗按钮

  • confirm()函数--显示一个确认对话框,包括OK、Cancel按钮

  • prompt()函数--显示输入对话框,提示等待用户输入

  • eval()函数--计算表达式的结果

  • isNaN()函数--测试是否不是一个数字

  • parseFloat()函数--将字符串转化为浮点数字

  • parseInt()函数--将字符串转化为整数数字形式-可指定几进制

  • 函数--将字符串转化为Unicode码

  • unescape()函数--解码由escape函数编码的字符

数组函数4️⃣

  • join函数:转换并连接数组中的所有元素为一个字符串

    function JoinDemo(){
        var a,b;
        a = new Array(0, 1, 2, 3, 4);
        b = a.join("-");
        return(b);//返回b=="0-1-2-3-4"
    }
  • length函数:返回数组的长度

    function LengthDemo(){
        var a,l;
        a = new Array(0,1,2,3,4);
        l = a.length;
        return l;//返回l==5
    }
  • reverse函数:将数组元素顺序颠倒

    function ReverseDemo(){
        var a,l;
        a = new Array(0,1,2,3,4);
        l = a.reverse();
        return l;
    }
  • sort函数:将数组元素重新排序

    🌷sort函数有一个可选参数,用于指定排序规则的参数,具体情况可以参考:JavaScript Array sort() 方法 (w3school.com.cn)

    function SortDemo(){
        var a,l;
        a = new Array("x","y","d","l","v","o","e");
        l = a.sort();
        return l;
    }

日期函数2️⃣0️⃣

🔆一共20个,大体速记可以分为get、set 加三类特殊的

  • parse(返回从1970年1月1日零时整算起的毫秒数(当地时间))

  • UTC(返回从1970年1月1日零时整算起的毫秒数,以GMT格林威治标准时间计算)

  • toGMTString(将日期转换为字符串,为GMT格林威治标准时间)

  • get后加上Year(年)、Month(月)、Date(日)、Day(星期)、House(时)、Minutes(分)、Seconds(秒)、Time(系统)、TimezoneOffset(时差)表示获取对应的时间

  • get后加上Year(年)、Month(月)、Date(日)、House(时)、Minutes(分)、Seconds(秒)、Time(系统)、LocalString(当地)表示设定对应的时间

数学函数2️⃣6️⃣

🔆javascript数学函数其实就是Math对象,它包括属性和函数两部分

  • 属性

    • Math.e:e(自然对数)

    • Math.LN2(2的自然对数)、

    • Math.LN10(10的自然对数)、

    • Math.LOG2E(e的对数,底数为 2)、

    • Math.LOG10E(e的对数,底数为10)、

    • Math.PI(π)、

    • Math.SQRT1_2(1/2的平方根值)、

    • Math.SQRT2 (2的平方根值)。

  • 函数

    • abs函数:即Math.abs(以下同),返回一个数字的绝对值

    • acos函数:返回一个数字的反余弦值,结果为0~π弧度(radians)。

    • asin函数:返回一个数字的反正弦值,结果为-π/2~π/2弧度

    • atan函数:返回一个数字的反正切值,结果为-π/2~π/2弧度

    • atan2函数:返回一个坐标的极坐标角度值。

    • ceil函数:返回一个数字的最小整数值(大于或等于)。

    • cos函数:返回一个数字的余弦值,结果为-1~1。

    • exp函数:返回e(自然对数)的乘方值。

    • floor函数:返回一个数字的最大整数值(小于或等于)。

    • log函数:自然对数函数,返回一个数字的自然对数(e)值。

    • max函数:返回两个数的最大值。

    • min函数:返回两个数的最小值。

    • pow函数:返回一个数字的乘方值。

    • random函数:返回一个0~1的随机数值。

    • round函数:返回一个数字的四舍五入值,类型是整数。

    • sin函数:返回一个数字的正弦值,结果为-1~1。

    • sqrt函数:返回一个数字的平方根值。

    • tan函数:返回一个数字的正切值。

字符串函数

🔆只列出几个常用的

  • indexOf函数:返回字符串中第一个查找到的下标index,从左边开始查找。

  • lastIndexOf函数:返回字符串中第一个查找到的下标index,从右边开始查找。

  • length函数:返回字符串的长度。(不用带括号)

  • substring函数:返回字符串中指定的几个字符

  • toLowerCase函数:将字符串转换为小写。

  • toUpperCase函数:将字符串转换为大写。

  • trim函数:去掉字符串的前后空格。

JavaScript中提供的操作数组的函数

  1. push(): 在数组的末尾添加一个或多个元素,并返回新的长度。

    let arr = [1, 2, 3];
    arr.push(4);
    console.log(arr); // [1, 2, 3, 4]
  2. pop(): 删除数组的最后一个元素,并返回该元素的值。

    let arr = [1, 2, 3];
    let removedElement = arr.pop();
    console.log(arr); // [1, 2]
    console.log(removedElement); // 3
    ​
  3. shift(): 删除数组的第一个元素,并返回该元素的值。

    let arr = [1, 2, 3];
    let removedElement = arr.shift();
    console.log(arr); // [2, 3]
    console.log(removedElement); // 1
  4. unshift(): 在数组的开头添加一个或多个元素,并返回新的长度。

    let arr = [2, 3];
    arr.unshift(1);
    console.log(arr); // [1, 2, 3]
  5. splice(): 从指定位置删除或添加元素。

    let arr = [1, 2, 3, 4, 5];
    arr.splice(1, 2); // 从索引1开始删除2个元素
    console.log(arr); // [1, 4, 5]
    ​
    arr.splice(2, 0, 'a', 'b'); // 从索引2开始插入'a'和'b'
    console.log(arr); // [1, 4, 'a', 'b', 5]

练习题--合并有序数组

🔆给你两个按 非递减顺序 排列的整数数组 nums1nums2,另有两个整数 mn ,分别表示 nums1nums2 中的元素数目。

请你 合并 nums2nums1 中,使合并后的数组同样按 非递减顺序 排列。

💠注意--原本数列为有序的、合并到nums1中、nums1初始长度为m+n

//双指针
var merge = function(nums1,m,nums2,n){
    let p1=m-1, p2=n-1, p=m+n-1
    while(p1>=0 && p2>=0){
        if(nums1[p1]>nums2[p2]){
            nums1[p]=nums1[p1];//取大的数值放在nums1的后面
            p1--;
        }else{
            nums1[p]=nums2[p2];
            p2--;
        }
        p--;//指针依次向前
    }
    for(i=0;i<=p2;i++){
        nums1[i]=nums2[i];
    }
}
//JavaScript中splice、sort函数解决--空间时间消耗大,不推荐,但易懂
var merge = function(nums1,m,nums2,n){
    nums1.splice(m,nums1.length-m,...nums2);
    nums1.sort((a,b) =>a-b)//升序排列
}

练习题--两数相加

🔆给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

var twoSum = function(nums,target){
    let map = {};
    for(i=0; i<nums.length; i++){
        let num = nums[i];
        var diff = target-num;
        if(map[diff] !== undefined){
            return [map[diff],i];
        }
        map[num]=i;//存下已有数值的下标
    }
    return [];//未找到
}

练习题--买股票的最佳时期

🔆给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

var maxProfit = function(prices){
    let min = prices[0];
    let max = 0;
    for(let i=0; i<prices.length; i++){
        min = Math.min(min,prices[i]);
        max = Math.max(max,prices[i]-min);
    }
    return max;
}

练习题--斐波那契数

🔆斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 01 开始,后面的每一项数字都是前面两项数字的和。也就是:

F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1

给定 n ,请计算 F(n)

var fib = function(n){
    if(n<2){
        return n;
    }
    let p=0,q=0,r=1;
    for(let i=2;i<=n;i++){
        p=q;
        q=r;
        r=p+q;
    }
    return r;
}

补充

//想要交换数值的两个值可以直接使用
[nums[i],nums[j]] = [nums[j],nums[i]]

  • 33
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值