4. JavaScript的内置对象

一、js的对象之数组

1. Array数组

  1. 可以保存多种类型,大小也可以动态调整
  2. 主要是用来存储一组数据
1.创建数组

1.使用Array构造函数:
语法:new Array()
ps.小括号()说明:

  1. 预先知道数组要保存的项目数量
  2. 向数组构造函数传递数组应该包含的项
  var colors=new Array(3);
  var nums=new Array(1,3,6,9)
  console.log(colors);
  console.log(nums);

在这里插入图片描述

2.使用数组字面量表示法:
由包含了数组的[ ]表示,逗号隔开

  var cols=["red","blue"];
  var infos=[6,"marry",true];
  console.log(cols);
  console.log(infos);

在这里插入图片描述

2.数组元素的读写:
console.log(infos[2]);   //读写infos中第三个值

取不到时显示undefined

  var colors=new Array(3);
  colors[0]="#f00";
  colors[1]="#0f0";
  colors[2]="#000";
  console.log(colors);

在这里插入图片描述

3.数组长度:
  1. 语法:array.lengh
  2. 功能:获取数组array的长度
  3. 返回值:number
  var arr=["a","b","c"];
  console.log(arr.length);   //打印出来是3
  1. 说明:
    (1)通过设置length可以从数组的末尾移除或添加新项
  var arr=["a","b","c"];
  arr.length=2;
  console.log(arr);  
  console.log(arr[2]);   //已经删除了第三个数

在这里插入图片描述
(2)把一个值放在超出当前数组大小的位置上时,会重新计算数组长度值,长度值等于最后一项索引加1。

  var arr=["a","b","c"];
  arr[99]="z";
  console.log(arr.length);  //打印出来是(99+1)=100
4.数组的遍历
  var arr=["a","b","c"];
  for(var i=0;i<arr.length;i++)
  {
   console.log(arr[i]);
  }

在这里插入图片描述

5.数组栈方法:

push()

  1. 语法:arrObject.push(newele1,newwlw2,newele3,…neweX)
  2. 功能:把他的参数顺序添加到arryObject的尾部。
  3. 返回值:把指定的值添加到数组后的新长度。
  var colors=new Array("red","blue","yellow");
  colors.push("pink","green");
  console.log(colors);

在这里插入图片描述

unshift()

添加到数组的前面,其余和push相同

shift()

  1. 语法:arrObject.shift()
  2. 删除数组的第一个元素
  3. 返回值:被删除的元素

pop

  1. 语法:arrObject.pop()
  2. 删除数组的最后一个元素
  3. 返回值:被删除的元素
  var nums=[2,7,9,6];
  var size=nums.unshift(77,99);
  var n=nums.pop();
  console.log(n);
  console.log(nums);

在这里插入图片描述

6.数组转换方法:

join()

  1. 语法:arrayObject.join(separator)
  2. 功能:用于把数组中所有元素放入一个字符串
  3. 返回值:字符串
  var nums=[2,7,9,6];
  var str=nums.join();
  console.log(str);   //2,7,9,6
  console.log(typeof(str));   //string
  var words=["hello","hi","run"];
  var wordstr=words.join();     //hello,hi,run
  var wordstr=words.join("");   //hellohirun
  var wordstr=words.join("-");   //hello-hi-run
  console.log(wordstr);
7.数组重排序:

reverse

  1. 语法:stringObject.reverse()
  2. 功能:用于颠倒数组中的元素
  3. 返回值:数组
  var nums=[2,7,9,6];
  nums.reverse();
  console.log(nums);   //(4) [6, 9, 7, 2]
  var str=["a","b","c"];
  /*console.log(str.reverse());   //(3) ["c", "b", "a"] */
  console.log(str.reverse().join());   //c,b,a

sort()

  1. 语法:arrayObject.sort(sortby)
  2. 功能:排序
  3. 返回值:数组
  4. 说明:sort比较的是字符串,就算是数值,也比较的是字符串;sort()方法可以接收比较函数作为参数
  var nums=[11,18,9,4,50];
  console.log(nums.sort());    //(5) [11, 18, 4, 50, 9]
  var words=["run","hi","hello"];
  console.log(words.sort());  //(3) ["hello", "hi", "run"]

sort()方法可以接收比较函数作为参数

  var arr=[11,18,9,4,50];
  arr.sort(function(a,b){return b-a});  //降序  a-b升序
  console.log(arr);  //(5) [50, 18, 11, 9, 4]

concat()

  1. 语法:arrayObject.concat(arrayX,arrayX,…arrayX)
  2. 功能:用于连接两个或多个数组
  3. 返回值:数组
  var arr1=["a","b","c"];
  var arr2=["d","e"];
  var arr3=arr1.concat(arr2,["3","99"]);
  console.log(arr3);   //(7) ["a", "b", "c", "d", "e", "3", "99"]

slice()

  1. 语法:arrayObject.slice(start,end);
  2. 功能:从已有的数组中返回选定的元素
  3. 参数:
  • start(必须):规定从何处开始选取,如是负数,从数组尾部开始算起(可以是负数,从尾部开始选择)
  • end(可选):从何时结束选取,是数组片段处的数组下标,
  1. 说明:
  • 没设定end时,从start开始到结束。
  • 含有负数,则加上数组长度确定位置
  1. 返回值:数组
  var arr=["a","b","c","d","e"];
  var newarr=arr.slice(1,3);
  console.log(newarr);   //(2) ["b", "c"]

面试题:

完成以下代码段,实现b数组对a数组的拷贝

var a=[1,"yes",3];

方法一:

  var a=[1,"yes",3];
  var b;
  b = new Array();
  for (var i=0;i<a.length; i++) 
  {
   b.push(a[i]);
  }
  console.log(b);  //(3) [1, "yes", 3]

方法二:

  var a=[1,"yes",3];
  var b=[].concat(a);  //var b=a.concat();
  console.log(b);  //(3) [1, "yes", 3]

方法三:

  var a=[1,"yes",3];
  var b=a.slice(0);
  console.log(b);  //(3) [1, "yes", 3]

splice

删除:

  1. 语法:arrayObject.splice(index,count);
  2. 功能:删除从index处开始的零个或多个元素
  3. 返回值:含有被删除的元素的数组。
  4. 参数:count是要删除的项目数量,如果设置为零,则不会删除项目。如果不设置,则删除从index开始的所有值。
  var arr=["a","b","c","d","e"];
  var newarr=arr.splice(2,2);
  console.log(arr);  //(3) ["a", "b", "e"]
  console.log(newarr);  //(2) ["c", "d"]

插入:

  1. 语法:arrayObject.splice(index,count);
  2. 功能:在指定位置插入值
  3. 参数:index:起始位置
  var arr=["a","b","c","d","e"];
  var insertA=arr.splice(3,0,"m","n");
  console.log(insertA);  //[] 返回的是空值

替换:

  1. 语法:arrayObject.splice(index,count,item1,…,itemX);
  2. 功能:在指定位置插入值,且删除任意数量的项
  3. 参数:index:起始位置 count:要删除的项数
  4. 返回值:从原始数组中删除的项
  var arr=["a","b","c","d","e"];
  var insertA=arr.splice(1,2,"x","y","z");
  console.log(arr);   //(6) ["a", "x", "y", "z", "d", "e"]
  console.log(insertA);  //(2) ["b", "c"]
8.添加位置:

indexof

  1. 语法:arrayObject.indexof(searchvalue,startIndex);
  2. 功能:从数组开头位置向后查找
  3. 参数:searchvalue:必需,要查找的项 startIndex:可选,起点位置的索引
  var arr=[1,7,9,6,7];
  
  var pos=arr.indexOf(7);
  console.log(pos);    //1
  
  var pos=arr.indexOf(7,2);
  console.log(pos);    //4
  1. lastindexOf 就从末尾开始检测
  2. 查找时必须全等

二、String

1. charAtchatcodeAt

  1. 语法:stringObject.charAt(index)
  2. 功能:返回stringObject中index位置的字符。code返回字符编码
  var str="helloworld";
  console.log(str.charAt(1));  //e
  console.log(str.charCodeAt(4));  //0的编码111

2.indexOflastindexOf(从后往前)

  1. 语法:stringObject.indexOf(“o”);
  2. 功能:从一个字符串楷书搜索给定的字符串,返回字符串的位置
  3. 返回值:数值
  4. 说明:没有找到子字符串,返回-1
  var str="helloworld";
  console.log(str.indexOf("rl"));   //7

3.slice

  1. 语法:stringObject.slice(start,end);
  2. 功能:截取子字符串。
  3. 参数:
  • start(必须):规定子字符串开始位置
  • end(可选):从何时结束选取,不包括end。没设定end时,从start开始到结束。
  • 参数为负数:负值和字符串长度相加。
  var str="helloworld";
  console.log(str.slice("3","5"));   //lo
  console.log(str.slice(-3));   //rld

substring()

用法和slice()一模一样。
区别:

  • 参数为负数,自动将参数转换为0
  • 会将较小的数作为开始位置,将较大的数作为结束位置。
  console.log(str.substring(2,-5));  //(0,2)
  console.log(str.substring(-7,5));  //(0,5)

substr()

  1. 语法:stringObject.substr(start,length);
  2. 功能:截取子字符串。
  3. 参数:
  • start(必须):规定子字符串开始位置
  • len(可选):截取的总长度
  • start为负数:负值和字符串长度相加。
  • len为负数:返回空字符串
  var str="helloworld";
  console.log(str.substr(6,3));   //orl

三、综合应用

 var url="index.txt";
 
 function getFileFormat(url)
 {
  var pos=url.lastIndexOf(".");
  return url.slice(pos);
 }
 
 var formatName=getFileFormat(url);
 console.log(formatName);  //.txt

1.split

  1. 语法:stringObject.split(separtor);
  2. 功能:把一个字符串分割成字符串数组。
  3. 返回值:Array
  4. 说明:separtor:必需 分隔符
 var str='welcome-to-beijing';
 var arr=str.split("-");
 console.log(arr);  //(3) ["welcome", "to", "beijing"]

2.replace()

  1. 语法:stringObject.replace(regexp/substr,replacement);
  2. 功能:在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串
  3. 返回值:String
  4. 参数:
  • replace:必需 规定字符串或要替换的模式的RegExp对象
  • replacement:必需 一个字符串值
 var str='welcome-to-beijing';
 var arr=str.replace("-"," ");
 console.log(arr);   //welcome to-beijing

3.toUpperCase()toLowerCase()

  1. 语法:stringObject.toUpperCase()
  2. 功能:把字符串转换为Upper大写/Lower小写。
 var str='welcome';
 console.log(str.toUpperCase());    //WELCOME
 var str='welcome';    
 var upper=str.charAt(3).toUpperCase()
 console.log(upper);   //C
 function camleback(str)
 {
  //通过-这个分隔符,将str拆分成数组
  var arr=str.split("-"),newStr=arr[0];
  //console.log(arr);    //(3) ["border", "left", "color"]
  for (var i = 1; i<arr.length; i++) 
  {
   var word=arr[i];
   //将每一个单词的首字母转换为大写+连接字符串
   newStr+=word.charAt(0).toUpperCase()+word.substr(1);
  }
  console.log(newStr);  //borderLeftColor
 }
 var camelFormat=camleback("border-left-color");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值