1)JS自身提供的方式
用于对数据进行简便的操作,根据方法可以操作的数据类型不同,形成了不同的对象--内置对象2)数组
a)基本操作方法--对数组进行修改
从数组最后进行操作 1)数组.push(); 传入参数 添加到数组最后 返回值=>新数组 2)数组.pop(); 传入参数 删除最后一个 返回值=>删除元素 从数组开始进行操作 3)数组.unshift(); 传入参数 添加到数组开始 返回值=>新数组 4)数组.shift(); 传入参数 删除最开始的一个 返回值=>删除元素 b)操作方法
1)数组.concat(); 用于数组连接 特性:不会修改原数组,返回操作的结果=>新数组 特殊功能:进行数组的复制操作 2)数组.slice(start,end) 复制数组中指定部分数据 返回值:返回值:获取的结果不含end位置的值,以数组形式返回 特殊功能: a)不传参数2,默认到最后 b)参数可以为负数.表示从后往前 3)数组.splice(start,len); 截取数组中的指定部分 返回值:截取元素的部分 数组形式 特殊用法:数组.splice(start,len,item1,item2,item3..) 将后面的元素放入原数组中被截取的位置上,个数不需要对应 常用用法:删除数组中的指定元素 c)位置方法-IE9以下不支持
--> 数组.indexof(要查找的元素值,检索的起始位置索引值(默认是==0)) --- 查找数组中置顶元素的索引值 返回值:找到=>返回索引值 没有找到=>-1 数组去重 var arr = [1, 1, 2, 2, 3, 3, 4, 3, 2, 1, 1, 2, 3, 2, 1]; var resultArr = []; for(var i= 0 ; i<arr.length; i++){ if(resultArr.indexof(arr[i]===-1){ resultArr.push(arr[i]); } } console.log(resultArr); --> 数组.lastIndexOf() 不经常使用 问题:如果在一个数组中具有多个满足条件的元素,需要多次使用indexof
var arr = ["a", "b", "a", "c", "a", "a", "b", "a", "c", "a", "a", "b", "a", "c", "a", "a", "b", "a", "c", "a", "a"]; var indexArr = [];//用于保存找到的索引值 var index = -1; while (arr.indexof("a",index +1) != -1){ index = arr.indexof("a",index +1 ); indexArr.push(index); } console.long(indexArr); d)排序方法
1)数组.reverse( ) 翻转数组 修改原数组 返回值=>原数组 2)数组.sort( ) 排序 修改原数组 3)return a-b; 升序 return b-a; 降序 var arr = [7, 5, 8, 6, 3, 11, 22, 9, 2, 1, 4]; //升序的参数形式: function(a,b){return a-b;} //arr.sort(function (a,b) { // return a-b; //}); //降序的参数形式: function(a,b){return b-a;} arr.sort(function (a, b) { return b - a; }); console.log(arr);模拟 sorted
模拟: function sorted(arr, fn) { //fn = function (a,b) { // //使用时需要的是差的计算结果 // return a-b;//返回的是当前项减后项的差 // return b-a;//返回的是后项减当前项的差 //} var j, temp; for (var i = 0; i < arr.length - 1; i++) { for (j = 0; j < arr.length - 1 - i; j++) { //比較当前项和后项的大小关系: //升序的判断条件 : arr[j] > arr[j + 1] // arr[j] - arr[j+1] > 0; //降序的判断条件 : arr[j] < arr[j + 1] // arr[j+1] - arr[j] > 0; //结论:升序和降序的控制实际上是由比較运算前面的操作数决定的。 //如果是当前项-后项的差,升序。 //如果是后项-当前项的差,降序。 if (fn(arr[j], arr[j + 1]) > 0) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } var arr = [1, 6, 3, 5, 4, 2]; sorted(arr, function (a, b) { //使用时需要的是差的计算结果 // return a-b;//返回的是当前项减后项的差 return b - a;//返回的是后项减当前项的差 }); console.log(arr);3)字符串
a)概念
字符串就是基本数据类型,不是对象;JS帮我们创建了基本包装类型对象,并且调用了其属性和方法;我们一定不要自己书写基本包装类型对象 b)转换为字符串
1)数组.toString( ); 2)join( ); //var arr = [1,2,3,4,5]; //2.1 如果不传参数,形式和toString相同 //console.log(arr.join());//"1,2,3" //2.2 传入参数时,会按照传入的字符串将数组的所有元素进行连接 //console.log(arr.join("-"));//"1-2-3" //2.3 传入空字符串,可以返回元素相连的字符串 //console.log(arr.join(""));//"123" c)基本属性
1)字符串.length 字符串长度 2)索引 a)字符串[索引值] IE9 以下不支持 b)字符串.charAt(索引值) d)字符串方法--字符串具有不可变性
1)字符串.concat( ) 字符串连接(不常用,一般使用+) 2)字符串.slice(start,end) 拷贝字符串中的指定部分字符 3)字符串.substring(start,end) 截取字符串中的指定字符(不常用) 不支持负数参数(负数默认是0 ,参数1 > 参数2 =>交换两个参数的值) 4)字符串.substr (start,len) 截取字符串中的指定长度的部分字符 e)大小写转换
1)字符串.toUpperCase(转为大写) 2)字符串.toLowerCase(转为小写)