内置对象--Array对象篇

内置对象—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 : 用来查找某个元素中第一次出现的位置,如果找不到,返回-1
array.indexOf(search,[fromIndex]);
//lastIndexOf: 从后面开始来查找某个元素第一次出现的位置,如果找不到,返回-1
array.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);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值