18 Array对象

创建数组

1.通过字面量来创建

var arr = [10,20,30,40,50,60];

2.通过内置构造函数方式来创建new来创建

var array = new Array(10,20,30,40,50,60);
console.log(array);

两种创建方式只有1个区别,如果里面就写一个数字,假设是6,表示的是6个empty,长度为6

判断这个对象是不是数组

1.instanceof 判断这个对象是否是数组,如果是返回的是true,如果不是就是false

var ary = [];
console.log(ary instanceof Array); //true

2.isArray判断这个对象是否是数组,如果是数组返回true,如果不是数组返回false

var ary = [];
console.log(Array.isArray(ary)); //true

例:

var num = 10;
console.log(num instanceof Array); //false
console.log(Array.isArray(num)); //false

1.push(值1,值2,值3…) 把数据往数组后面添加(追加),返回的是追加之后的长度

var arr = [10,20,30,40,50,60];
var result1 = arr.push(100,200);
console.log(result1); //8 数组长度
console.log(arr); //10,20,30,40,50,60,100,200 //数组

2.unshift( ) 往前面追加

var arr = [10,20,30,40,50,60];
var result2 = arr.unshift(100,200);
console.log(result2); //8 数组长度
console.log(arr); //100,200,10,20,30,40,50,60 //数组

3.pop( ) 删除数组最后一项返回删除的那一项

var arr = [10,20,30,40,50,60];
var result3 = arr.pop();
console.log(result3); //60
console.log(arr); //10,20,30,40,50

4.shift( ) 删除数组的第一项

var arr = [10,20,30,40,50,60];
var result4 = arr.shift();
console.log(result4); //10
console.log(arr); //20,30,40,50,60

5.indexOf(元素值) 返回这个元素所在数组中的索引位置,如果这个元素不存在就返回-1

.lastIndexOf(元素值) 从后向前查找返回所在数组中的索引位置,如果元素不存在就返回-1

var arr = [10,20,30,40,50,60];
var index1 = arr.indexOf(30);
console.log(index1); //2  30所在数组中的位置
var index2 = arr.lastIndexOf(10);
console.log(index2); //0  10所在数组中的位置

6.join(“字符串”) 把数组按照指定的字符串进行拼接,如果没有参数就按默认的逗号拼接成字符串,如果有参数就按照指定的参数进行字符串拼接

var arr2 = ["鸣人","佐助","小樱","宁次","小李"];
var temp = arr2.join("|");
console.log(temp); //鸣人|佐助|小樱|宁次|小李

7.reverse() 数组反转 参数无,返回值是反转之后的数组

var arr = [10,20,30,40,50,60];
var temp = arr.reverse();
console.log(temp); //60,50,40,30,20,10

8.sort() 数组排序 冒泡排序,如果没有参数,只能排序10以内数字,如果超过了10,或者说任意数字,那么则要传递一个匿名函数,这个函数叫做回调函数

var arr1 = [1,8,9,2,3,5,7];
var temp = arr.sort();
console.log(temp); //1,2,3,5,7,8,9

超过10

var arr1 = [1,11,22,15,18,88,99,100,66,200];
var temp1 = arr1.sort(function(){ //匿名函数(回调函数)
    return a - b; //表示从小到大  b - a 表示从大到小
})
console.log(temp1); //1,11,22,15,18,66,88,99,100,200

9.slice(n,m) 从索引n开始获取到索引m(不包含m)返回值是元素组成的新数组

var arr = [10,20,30,40,50,60];
var temp = arr.slice(2,5);
console.log(temp); //30,40,50

10.splice(n,m,x/y/z…) 把数组从索引n开始删除m个元素,用x/y/z…替换删除的m项,返回值是删除的m项的新数组

var arr1 = [10,20,30,40,50,60];
var temp1 = arr1.splice(1,2,200,300);
console.log(temp1); //20,30 这两项被替换掉了
console.log(arr1); //10,200,300,40,50,60 原来的数组是被替换后的数组

当m为0时,会直接把x/y/z替换到索引n的前面

当不写x/y/z…时代表删除几个元素

当里面什么都不写时代表没有数组进行任何操作,返回一个空数组 //[]

当里面为0时代表删除整个数组返回原数组,原数组变为空

练习:

1.截取字符串"我爱中华人民共和国",中的"中华"

 var str = "我爱中华人民共和国";
 var index = str.indexOf("中华"); //返回所在索引位置
 // console.log(index); //获取到"中华"所在的位置 2
 str = str.substr(index,2); //截取两位字符
 console.log(str);

2.找到字符串中所有的o的出现的位置

方法1.

var str = "hello wod odd ott fbo nhyo";
var index = 0;
var key = "o";
//循环
while((index = str.indexOf(key,index)) != -1){
//如果是-1情况下说明找完了 indexOf(key,index)表示要找到o(key),0(index)开始
console.log(index); //打印出所有o的位置
index++; 找到一个后再自增
//index += key.length;
//等价于 index +=1 或者说index++
}

方法2.

var str = "hello wod odd ott fbo nhyo";
function fun(str,key){
// 循环
 for(var i = 0; i < str.length; i++){
    // 判断有没有这个o
    if(str[i] == key){
    console.log(str.indexOf(key,i)); //从i=0开始找o
          }
      }
  }
  fun(str,"o");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值