数组和字符串操作

数组

var arr = ["a","b","c","d"];
1. Array.unshift() 在前面添加元素

arr.unshift(val1,[val2[, val3[, . . . [,valN]]]])
将一个或多个元素添加到数组的前面
返回值:数组新长度(length)

2. Array.shift() 删除第一个

arr.shift()
删除数组第一个元素
返回值:被删除的元素

3. Array.pop() 删除最后一个

arr.pop()
删除数组最后一个元素
返回值:被删除的元素

4. Array.push() 在后面添加元素

arr.push()
在数组后面添加元素
返回值:新数组的长度(length)

5. Array.slice() 复制数组的一部分(不改变原数组)

arr.slice(start,end) 包含start不包含end
参数start:必传
参数end:可选(如不传参数时,从start开始复制到最后一个元素)
从已有的数组中返回选定的元素
返回值:数组(选中的元素组成一个数组)
不会改变原数组

6. Array.join() 将数组的值拼接为为字符串

arr.join()
不传参数默认是","逗号进行拼接
参数类型:字符串类型 arr.join("-")

7. Array.reverse() 翻转数组

返回值:翻转后的数组
原数组改变

8. Array.sort() 数组排序

默认排序顺序是根据字符串Unicode码点

sort()方法可以传递一个函数作为参数,这个参数用来控制数组如何排序

  arr = [1,2,10,4,40,5]

  arr.sort(function(a,b){
    
        return a-b;  //按照正序
        //return b-a //按照倒序
  })
9. Array.concat() 数组合并

返回值:返回一个新数组,原数组不变

var arr = [1,2,3]
var arr1 = ["a","b","c"]
var newArray = arr.concat(arr1);//[1,2,3,"a","b","c"];
10. Array.splice() 以新元素替换旧元素

arr.splice(参数1,参数2,参数3,参数4...)
参数1:开始位置(下标)
参数2:要替换的个数
参数3...:需要替换的内容

返回值:被替换的内容
 var arr = [1,2,3,4,5];
      var b = arr.splice(1,2,75,68,69,77)
      console.log(arr);//[1, 75, 68, 69, 77, 4, 5]
      console.log(b);//[2,3]
10.查找数组元素 --indexOf-lastIndexOf
indexOf(searchvalue,fromindex)

参数searchvalue:必选 需要检索的字符串值
参数fromindex:可选 固定从什么位置开始检索(下标)
返回值 : 查找到的字符串的索引值 如果找不到返回-1

lastIndexOf(searchvalue,fromindex)

从最后一项往前查找
返回值 : 查找到的字符串的索引值 如果找不到返回-1

11.操作数组里的元素
filter() 过滤数组

返回值:返回一个符合函数要求的元素组成的新数组

语法:var newArr = arr.filter(function(element,index,array){}
elememt:数组的每项值
idnex:索引值
array:表示传入的数组
 var arr = [11,22,33,66,4,22,4,56,77]
      var newArr = arr.filter(function (ele) {
        return ele>10
      })
      console.log(newArr)//[11, 22, 33, 66, 22, 56, 77]
    });
map()

map()方法让数组中的每个元素都调用一次提供的函数,将调用后的结果放到一个新的数组里并返回
不会改变原数组

 var arr = ["亿","是啥","哈哈"]
      var newArr = arr.map(function (ele) {
          return ele+"end"
      })
      console.log(newArr);//["亿end", "是啥end", "哈哈end"]
    });
12.forEach()遍历数组

arr.forEach(function(ele,index,array){})

  arr.forEach(function (element, index, array) {
    //数组里的每一个元素都会被打印
    console.log("第" + index + "个元素是" + element);
  });
13.清空数组
1.array.splice(0,array.length);//删除数组中所有的元素
2.array.length = 0;//直接修改数组的长度
3.array = []; 将数组赋值为一个空数组,推荐
数组练习
var arr = ["c", "a", "z", "a", "x", "a", "a", "z", "c", "x", "a", "x"]
1. 找到数组中每一个a出现的位置
var arr = ["c", "a", "z", "a", "x", "a", "a", "z", "c", "x", "a", "x"]
        var index = 0
        var temp = 0
        for (var i = 0;i<arr.length;i++){
          index = arr.indexOf("a",temp);
          if(index !== -1){
            console.log(index)
            temp = index+1;
          }
        }
2. 数组去重,返回一个新数组
var arr = ["c", "a", "z", "a", "x", "a", "a", "z", "c", "x", "a", "x"]
       //数组去重 返回新数组
       var  newArr = []
       for(var i = 0; i<arr.length;i++){
       if (newArr.indexOf(arr[i]) == -1){
         newArr.push(arr[i])
         }
       }
       console.log(newArr)
3. 获取数组中每个元素出现的次数
var arr = ["c", "a", "z", "a", "x", "a", "a", "z", "c", "x", "a", "x"]
      //获取每个元素出现的位置
      var obj = {};
      arr.forEach(function (ele) {
          if(obj[ele] == undefined){
            obj[ele] = 1;
          }else{
            obj[ele]+=1
          }
      })
      console.log(obj)

==============================================

字符串操作

String对象

字符串可以看成是一个字符数组(真正运算的是字符串的基本包装对象)
因此字符串也有长度(length属性),也可进行遍历

查找指定字符串(同数组) indexOf() lastIndexOf()
indexOf() lastIndexOf()
获取某个字符第一次出现的位置,如果没有返回-1
去除空格 trim()

去除字符串两边的空格,内部空格不会去除

大小写转换
toUpperCase() //全部转换成大写
toLowerCase() //全部转换成小写
字符串拼接与截取
字符串拼接 concat()

用法和数组一样
返回值:新的字符串
字符串拼接一般使用 + 号

字符串截取

1.slice(start,end) 包含头不包含尾(参数均为下标)
复制字符串一部分
返回值:新字符串
2.substr(start,length) 复制字符串 (推荐)
从start开始 复制length个字符

字符串切割为数组 split()
//split:将字符串分割成数组,原字符串不改变(很常用)
var str = "张三,李四,王五";
var arr = str.split(",");
未完..













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

推荐阅读更多精彩内容