您的位置:首页 > Web前端 > JavaScript

JS基础学习易遗忘知识点笔记||疑难点||(二): 内置对象,遍历数组;操作数组

2020-01-12 19:55 519 查看

变量与函数声明同名a,预解析后,函数优先,如果下面给a赋值,那么

内置对象

//求一堆数中的最大值:
Math.max(一堆数);
//求一个数的绝对值 正数
Math.abs(x)  ;
//得到当前时间的日期对象
var date = new Date();
  • 获取从1970年1月1日到现在的总毫秒数,常说的时间戳

    var date = new Date();
    
    console.log(date.valueOf());
    console.log(date.getTime());
    console.log(1*date);
    console.log(Date.now());

Array

对数组元素操作:

  • push 从数组后面推入一个元素或多个元素:
var arr = [1,2,3];

// 返回:修改后数组的长度
arr.push(4,5,6);
  • pop 删除数组最后一个元素
// 数组的pop方法用于将数组的最后一个元素移除
var arr = [1,2,3];

// 返回 被删除的元素;
arr.pop();
  • unshift 从数组前面添加一个或多个元素

    var arr = [1,2,3];
    
    // 返回:修改后数组的长度
    arr.unshift(4,5,6);
  • shift 用于将数组的第一个元素移除

// 数组的shift方法用于将数组的第一个元素移除
var arr = [1,2,3];

// 返回 被删除的元素;
arr.shift();
  • splice:可进行数组任何位置的增删改

    // 数组的splice方法用于从数组的指定位置移除、添加、替换元素
    var arr = ['a','b','c','d','e'];
    //-------------------------------------------------
    // 对原数组操作
    // 作用:从索引3开始移除,总共移除1个元素 ,
    // 返回 被移除元素组成的数组
    arr.splice(3,1);
    console.log(arr);
    //----------------------------------------------------
    // 在c后面添加7和8两个元素
    // 作用:从索引3开始添加,移除0个元素,把7,8加入;
    // 返回:一个空数组
    // 操作原数组;
    arr.splice(3,0,7,8);
    //-----------------------------------------------------
    // 作用:从索引1开始替换,总共替换1个,用0替换 ;
    // 返回:被替换元素组成的数组(空数组)
    arr.splice(1,1,0);
    console.log(arr);

与字符串互转

  • join 用于将数组中的多元素以指定分隔符连接成一个字符串
var arr = ['刘备','关羽','张飞'];
var str = arr.join('|');
console.log(str);  // 刘备|关羽|张飞
  • split 字符串的方法:转数字,后面为分隔的字符
// 这个方法用于将一个字符串以指定的符号分割成数组
var str = '刘备|关羽|张飞';
var arr = str.split('|');
console.log(arr);

查找元素

  • indexOf:根据元素查找索引(位置),如果这个元素在数组中,返回索引,否则返回**-1**,找元素在不在数组内部,
  • 场景:可以用于查找需要的元素,如果不等于-1,就说明这个数组里有要找的东西(查询是否有敏感字,有就和谐成**)
var arr = [10,20,30]
console.log(arr.indexOf(30));  // 2
console.log(arr.indexOf(40));  // -1
  • findIndex方法用于查找满足条件的第一个元素的索引,如果没有,则返回-1
var arr = [10, 20, 30];
var res1 = arr.findIndex(function (item) {
return item >= 20;//item 回调函数,代表每一次遍历的数据,,return后面是判断条件
});
// 返回 满足条件的第一个元素的的索引(下标),若没有,返回-1
console.log(res1);

var res2 = arr.findIndex(function (item) {
return item >= 50;
});
// -1
console.log(res2);

遍历数组专用循环!!!

  • for循环:JS基础语法;[!!!]

  • forEach循环:遍历数组;!!!

    // 数组的forEach方法用于遍历数组
    var arr_1 = [10,20,30,40,50];
    参数:函数(函数)
    //item:每个数据;index:下标;arr:当前遍历的数组
    
    // 对本数组操作,没有返回值;
    arr_1.forEach(function(item,index,arr){
    console.log(item,index);
    });
  • filter 过滤,筛选出数组中满足条件的数组,返回是一个新的数组

// 数组的filter方法用于将数组中满足条件的元素筛选出来
// 筛选出数组中 小于 2000 的数据
var arr_1 = [1500,1800,2200,300,2600,800];
var res = arr_1.filter(function(item,index,arr){
return item < 2000;
});
// fitler方法的的参数要求是一个函数,这个函数接收2个参数:item是数组中的每个元素,index是item对应的索引,arr代表当前的数组
  • 数组和伪数组的核心区别:

拼接与截取

  • concat 接收数组,不改变原数组,创建新数组返回
// 数组的concat方法的作用是把多个数组合并成一个新的数组
var arr1 = [1,2,3];
var arr2 = [4,5,6];
var arr3 = [7,8,9];
var res = arr1.concat(arr2,arr3);
console.log(res);

// 复制一个数组
var arr_1 = arr.concat();
  • slice 截取数组:不对原数组操作,返回的是新的数组;
//slice:
//作用:截取数组;
var arr = ['a','b','c','d','e'];
// 表示 从下标1(包括),截取到下表为4(不包括),
var res = arr.slice(1, 4);

// 如果不给第二个参数,默认就是把从start开始,到length结束的所有的元素截取
var arr_1 = arr_2.slice(1);

// 复制数组:如果省略两个参数,start默认是0,end默认是length
var arr_1 = arr_2.slice();

复制数组

1.for循环复制

2.forEach数组遍历

//arr:可选参数
var new_arr = [];
arr.forEach(function(item,index){
new_arr.push(item);
});
new_arr[0]="abc";
console.log(new_arr,arr);

3.filter 满足过滤条件的元素,组成个新数组返回;

var new_arr = arr.filter(function(item,index,arr){
return arr.indexOf(item)!=-1;
});
new_arr[0]  = "abc";
console.log(new_arr,arr);

4.拼接和截取

参数:不传入
返回:新数组(和arr一样)
var new_arr =  arr.concat();
new_arr[0] = '';
//---------------
参数:不传入
返回:全部截取,新数组和arr一样
var new_arr = arr.slice();
new_arr[0] = "--------------------++--------";
console.log(new_arr,arr);

string不可变性

//内存栈:
//数字会被干掉
var num = 10;
num = 20;
//对于字符串而言,字符串不会被干掉,如果替换会使原来的字符串处于内存中的游离状态;
var num = "abc";
num = "cba";
//所以尽量避免使用大量的字符串的拼接;
//前端性能优化
//拼接字符串
str = 'aaaa'
可以用str.concat('-----','aaaa')//拼接
//截取字符串
//-------------------------
//substring
//作用:截取字符串
//参数:第一个参数:截取开始的下标(包括);第二个参数:截取结束的下标(不包括)
//返回:截取出来的字符串
var res = str.substring(0,3);//从0开始,3结束(不包括3)
console.log(str,res);
//---------------------------
//substr
//作用:截取字符串
//参数:第一个参数开始下标.第二个参数,截取的个数;
//返回:被截取新字符串,没有对原字符串修改;
var res = str.substr(2,3);
console.log(res);
//------------------------
//slice
//作用:截取字符串;
//参数:第一个参数:截取开始的下标(包括);第二个参数;截取结束的下标(不包括)
//返回:截取出来的字符串
var res = str.slice(0,3);
console.log(str,res);
//特别:参数可以设置负数,遇见负数,内部(负数+字符串的长度--->值 下标)

总结

  • math

    random:随机条;随机渐变色;
  • floor:向下取整;
  • ceil:向上取整;
  • round:四舍五入;
  • abs:绝对值(没有再取整)
  • Date:

      获取时间戳

      唯一的ID:身份证(唯一) 时间戳*随机数(前端模拟数据);
  • 比较时间字符串大小:

  • Array:

      push-pop-unshift-shif:从后添加-从后删-从前添加-从前删

    • splice!!!

    • 与字符串互转;

    • arr.indexOf(备查的元素):验证元素是否在数组中;

      有:返回钙元素在数组中的下标;
    • 没有:-1;
  • 遍历:

      for

    • forEach

    • filter 筛选

  • 复制:需要把数组复制;

  • 字符串:

      indexOf
    • 点赞
    • 收藏
    • 分享
    • 文章举报
    Gem__ 发布了25 篇原创文章 · 获赞 0 · 访问量 382 私信 关注
  • 内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: