内置对象--Array对象篇

来源:互联网 发布:三菱m70cnc传输软件 编辑:程序博客网 时间:2024/06/12 21:05

内置对象—Array

   首先我们要明白JS内置对象是Javascript自带的一些对象,供开发者使用,这些对象提供了一些常用的方法(函数:把具有功能性的代码封装起来)。常见的内置对象有Math、String、Array、Date等。   当我们创建一个数组时,内部就会赋予其一些常用的方法.【操作数(这里指的是你要操作的array)作为对象去调用对应的方法】
  • 数组转换
//语法 : array.join() //作用:将数组的值拼接成字符串。var arr = [1,2,3,4,5];arr.join();      //不传参数 ,默认按 “ ,” 拼接,传了参数就用传的值连接arr.join("-");   //console.log(arr):"1-2-3-4-5" arr.join("");    //console.log(arr): "12345"
  • 数组的增删操作
array.push();             //将一个或多个元素添加到数组的结尾,返回新的长度array.pop();              //从数组中删除最后一个元素,返回该元素的值,改变了数组的长度array.unshift();         //将一个或多个元素添加到数组的开头,返回新的长度array.shift();           //从数组中删除第一个元素,返回该元素的值,改变了数组的长度// 练习  把数组的第一个元素和最后一个元素交换位置var arr = ["司马懿","曹丕","杨修","曹植","曹操"];var a =arr.pop();             //a"曹操"var b =arr.shift();           //b :  "司马懿"arr.unshift(a); arr.push(b);              console.log(arr);             // ["曹操","曹丕","杨修","曹植","司马懿"]
  • 数组的翻转与排序
array.reverse();     //翻转数组,返回翻转过来的数组var arr = [1,2,3,4,5,6];arr.reverse()       //console.log(arr): [6,5,4,3,2,1]array.sort();       //默认 元素会按照转换为的字符串的诸个字符的Unicode位点进行排序,从小到大                     //如果是数字,10小于2,比较的是第一位var arr = ["aa","ab","aab",1,23,4,33,25,56,53];arr.sort();         // [1,23,25,33,53,56,"aaa","aab","ab"]//sort()方法可以传递一个函数作为参数,这个参数用来控制数组如何进行排序var arr = [2,3,5,4,12,1];arr.sort(function(a,b){       //a,b 代表数组中的每一个值    return a > b;             //按照正序从小到大排序[1,2,3,4,5,12]    return a < b;             //按照反序排列 [12,5,4,3,2,1]})//练习 将字符串数组按照字符串长度从大到小排序var arr = ["aaa","sdfg","bb","asdfg"];arr.sort(function(a,b){    return a.length < b.length          //arr :["asdfg","sdfg","aaa","bb"]})//练习 将学生数组按照年龄从小到大排列(如何将对象排列)var arr = [{age:12},{age:20},age{15}];arr.sort(function(a,b){    return a.age > b.age;              //arr :[{age:12},{age:15},{age:20}]})
  • 数组的拼接与截取
//concat : 数组合并,不会影响原来的的数组,会返回一个新的数组var arr1 = [1,2,3];var arr2 =["a","b","c"];var newArr =arr1.concat(arr2);  //newarr = [1,2,3,"a","b","c"]//slice : 复制数组的一部分到一个新的数组,并返回新的数组var nweArray = array.slice(begin,end)//原来的数组不受影响,包含头不包含尾var arr = [1,2,3,4,5];arr.slice(2,4);       //[3,4]//splice: 以新元素替换旧元素,来修改数组的内容,返回被替换的内容,原数组改变array.splice(start,deleteCount,items);//start:开始位置;deleteCount:删除的个数;items:替换的内容;var arr = [1,2,3,4,5];var newArray =arr.splice(1,3,"a","b");console.log(newArray);  //[2,3,4]console.log(arr);       //[1,"a","b",5]
  • 数组查找元素
//indexOf : 用来查找某个元素中第一次出现的位置,如果找不到,返回-1array.indexOf(search,[fromIndex]);//lastIndexOf: 从后面开始来查找某个元素第一次出现的位置,如果找不到,返回-1array.lastIndexOf(search,[fromIndex]);//fromIndex : 查找开始的位置,默认为0//练习 用indexOf实现去重var arr =[1,2,3,4,54,3,2,1];var newarr= [];for(i=0;i<arr.length;i++){    if(arr.indexOf(arr[i])==i){           //indexOf(arr[i])得到出现arr[i]元素的第一次出现的位置        newarr[newarr.length]=arr[i]        }}console.log(newarr);                     //[1,2,3,4,54]//--------------------------------------------------------------------------------------------var arr =[1,2,3,4,54,3,2,1];var newarr =[];for(i=0,i<arr.length;i++){    if(newarr.indexOf(arr[i])==-1){        newarr.push(arr[i])    }}console.log(newarr);                   //[1,2,3,4,54]
  • 操作数组里的元素
//function(element,index,array) element:数组里的元素;index:索引值;array:传入的数组//1. filter 添加过滤方法,返回一个由符合函数要求的元素组成的数组,原数组不变var arr = [23,,1,4,5,12,34,8];var newarr = arr.filter(function(element,index,arr){   return  element>10;});console.log(newarr);     //[23,12,34]//2.map (遍历)方法让数组中的每一个元素都调用一次提供的函数,将调用后的结果存在新的数组里并返回,原数组不变var arr = [1,2,3,4,5];var newarr = arr.map(function(element,index,arr){    return element + "0";})console.log(newarr);    //["10","20","30","40","50"]//3.forEach (遍历)方法对数组的每一个元素都执行一次提供的函数,且这个函数没有返回值var arr = [1,2,3,4,5];var result = arr.forEach(function(element,index,arr){    //数组中的每个元素都会打印    console.log("第" + index + '个元素是" + element);});console.log(result);    //函数没有返回值//4.some 方法测试数组中某些元素是否通过由函数提供的实现测试//5.every 方法测试数组中所有元素是否通过函数提供的实现测试 var arr = [12,34,23,43,2];var result = arr.some(function(element,index,arr){    return element<10;});console.log(result);    //true
  • 清空数组
// 1.  array.splice(0,length);  //删除数组中所有的元素// 2.  array = [];             //将一个空的数组赋值给数组// 3.  array.length = 0;        //直接修改数组的长度
  • 综合练习
//获取数组中每个元素出现的次数,以对象的方式呈现出来var arr = ["c", "a", "z", "a", "x", "a", "a", "z", "c", "x", "a", "x"]var obj ={};arr.forEach(function(element,index,arr){    if(obj[element]==undefined){        obj[element]=1;    }else{        obj[element]++;    }})console.log(obj);
原创粉丝点击