07、JavaScript-数组和字符串高级

每天一句:在你想要放弃的那一刻,想想为什么当初走到了这里 —— 科比

一、数组

  • splice()删除、替换、添加
  arrayObject.splice(start, num);
  参数:
    start: 操作开始位置
    num: 操作的个数

   // 删除: 从第1个开始,删除2个元素,返回值为删除元素
   arr.splice(1, 2);
  // 替换: 从第0个开始,替换3个,返回值为替换元素
  arr.splice(0, 3, '测试’);
  // 添加: 从第1个开始,替换0个,返回值为空
  arr.splice(1, 0, '测试’);   

案例: 数组去重

  • join()方法用于把数组中的所有元素放入一个字符串
  arrayObject.join(separtor);
  参数: 
    separtor: 指定使用的分隔符,如果缺省,则使用逗号作为分隔符;
 
  var arr = [1,2,3];
  // 以-为分隔符,将数组串联成字符串
  alert( arr.join('-') );
  • sort()方法是从小到大排序,返回排序后的数组,而源数组也是排序好的
  注1: sort默认是按照字符串进行处理的,即比较首字母; 数组排序和数字字符串排序算法是一样的;
  注2: sort方法并不是JS的标准中定制的,每个浏览器都可以自定义不同的排序方法;

  // 给sort传递一个比较函数
  arr2.sort(function(a, b){ 
    // return a - b;    // 从小到大
    return b - a;  // 从大到小
  });
        
  // 其他类型的比较
  var arrW = ['123px','23px','1000px','327px'];
  arrW.sort(function(a, b){
    return parseInt(a) - parseInt(b);
  });
  alert(arrW);

案例: 随机排序,即将数组打乱

  • reverse()方法从大到小排序,返回排序后的数组,而源数组也是排序好的

二、字符串

  • 字符串基本使用
    // 新建字符串
    var str3 = '面对疾风吧...';
    var str4 = new String('哈撒科...');
    // new Number(),new Boolean(),new Date(),new Function(),new Array(),new Object() ==> (通过new关键字得到的都是对象,但不推荐用法)

        // 字符串是特殊的数组
    // 获取字符串的长度
    str3.length
                
    // 通过下标获取字符串中的字符
    alert( str3[1] );
  • toUpperCase()转为大写

  • toLowerCase()转为小写

  • charAt()方法返回指定位置的字符

  • indexOf()方法返回某个指定的字符串值在字符串中首次出现的位置

  stringObject.indexOf(searchValue,fromIndex);
  参数: 
    searchValue: 必填,检索的字符串值;
    fromIndex:  可选,规定在字符串中开始位置,默认就是0;
  返回值: 
    返回对应字符串的位置,如果不存在返回-1;
  注: indexOf()从左往右查找; lastIndexOf()从右往左边查找

案例: 查找某个字符串出现的次数

  • substring()方法用于提取字符串中介于两个指定下标之间的字符
  stringObject.substring(start, stop);
  返回值: 返回的是stringObject的子字符串,其内容是从start处到stop-1处的所有字符;
  注: 是不包含stop处的字符;start和stop大小没有先后顺序; 当参数为负数时,该参数当0处理

案例: 动态展开/收起效果

  • split()方法用于把一个字符串分割成数组
  stringObject.split(separator,length);
  参数: 
    separator: 以separator分割;
    length: 指定返回的数组最大长度;
  返回值: 返回数组中的字符串不包含separator本身;     
  注: 若无参数,是将整个字符串放入数组,即是字符串转为数组类型;

  // 无参数,即是将字符串转为数组
  var arr1 = str.split();
        
  // 以'.'切割字符串
  var arr2 = str.split('.');
        
  // 以''将字符串一个个字符切分
  var arr3 = str.split('');

案例(面试): 颠倒字符串
综合案例: 查找、替换效果(split和join结合使用)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容