JavaScript

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

2017-05-04  本文已影响164人  EndEvent

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

一、数组

  arrayObject.splice(start, num);
  参数:
    start: 操作开始位置
    num: 操作的个数

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

案例: 数组去重

  arrayObject.join(separtor);
  参数: 
    separtor: 指定使用的分隔符,如果缺省,则使用逗号作为分隔符;
 
  var arr = [1,2,3];
  // 以-为分隔符,将数组串联成字符串
  alert( arr.join('-') );
  注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);

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

二、字符串

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

        // 字符串是特殊的数组
    // 获取字符串的长度
    str3.length
                
    // 通过下标获取字符串中的字符
    alert( str3[1] );
  stringObject.indexOf(searchValue,fromIndex);
  参数: 
    searchValue: 必填,检索的字符串值;
    fromIndex:  可选,规定在字符串中开始位置,默认就是0;
  返回值: 
    返回对应字符串的位置,如果不存在返回-1;
  注: indexOf()从左往右查找; lastIndexOf()从右往左边查找

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

  stringObject.substring(start, stop);
  返回值: 返回的是stringObject的子字符串,其内容是从start处到stop-1处的所有字符;
  注: 是不包含stop处的字符;start和stop大小没有先后顺序; 当参数为负数时,该参数当0处理

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

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

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

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

上一篇 下一篇

猜你喜欢

热点阅读