JavaScript本地对象常用方法(一)——数组对象

数组对象的常用方法

1.concat()
concat()在数组最后拼接成一个新的数组,具有拷贝功能,不影响原数组

//新建1个数组arr1
//arr2=arr1                 只是单纯的引用
//arr3=arr1.concat()        不添加新的数组,直接拷贝数组arr1
//arr4=arr1.concat(4,5);    添加新的数组[4,5],组成新的数组
var arr1=new Array(1,2,3);
var arr2=arr1;
var arr3=arr1.concat();
var arr4=arr1.concat(4,5);
console.log(arr1);          //[1, 2, 3]
console.log(arr2);          //[1, 2, 3]
console.log(arr3);          //[1, 2, 3]
console.log(arr4);          //[1, 2, 3, 4, 5]

//改变arr2                    由于arr2只是单纯的引用,会影响原数组
arr2[1]=6;
console.log(arr1);          //[1, 6, 3]
console.log(arr2);          //[1, 6, 3]
console.log(arr3);          //[1, 2, 3]
console.log(arr4);          //[1, 2, 3, 4, 5]

//改变arr3                    由于arr3直接拷贝了数组arr1,所以arr3的改变不会影响其他数组
arr3[0]=9;
console.log(arr1);          //[1, 6, 3]
console.log(arr2);          //[1, 6, 3]
console.log(arr3);          //[9, 2, 3]
console.log(arr4);          //[1, 2, 3, 4, 5]

//改变arr4                    由于arr4是由arr1拼接数组[4,5]组成的新数组,所以arr4的改变不会也不会影响其他数组
arr4[2]=8;
console.log(arr1);          //[1, 6, 3]
console.log(arr2);          //[1, 6, 3]
console.log(arr3);          //[9, 2, 3]
console.log(arr4);          //[1, 2, 8, 4, 5]

2.join()
join()将数组拼接成一个字符串

//新建1个数组arr5
var arr5 = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
//将arr5用join()方法拼接成一个字符串,用str1存放字符串
var str1 = arr5.join();     //join()参数为空时,自动用','拼接
console.log(str1);          //1,2,3,4,5,6,7,8,9,0
str1 = arr5.join('');       //join('')参数为'',用空字符串拼接时,能进行无缝拼接
console.log(str1);          //1234567890
str1 = arr5.join('+');      //join('+')参数为'+'时,用'+'拼接
console.log(str1);          //1+2+3+4+5+6+7+8+9+0

3.pop()
pop()去掉数组的最后一个对象

//新建1个数组arr6
var arr6 = new Array(1,2,5);
console.log(arr6.pop());//用pop()方法,截断数组最后一位,return被截断的对象:5
console.log(arr6);      //pop()方法改变原数组为:[1, 2]          

4.push()
push()在数组的末尾添加新的对象

//新建1个数组arr7
var arr7=new Array('a','b','c')
console.log(arr7.push(123,function(){
    console.log('qwer');
}));
//向数组对象添加数字好函数混合的数组 [123,function(){console.log('qwer');}] 返回新数组长度 5

console.log(arr7);
//["a","b","c",123,function]

arr7[4]();
//控制台输出 qwer 数组内匿名函数可用

5.reverse()
reverse()将数组倒序排序

//新建1个数组arr8
var arr8=new Array('a','b','c',3,2,1)
console.log(arr8.reverse());//[1, 2, 3, "c", "b", "a"]数组倒序
console.log(arr8);//[1, 2, 3, "c", "b", "a"]

6.shift()
shift()截断数组的第一个对象

//新建1个数组arr9
var arr9=new Array('a','b','c',3,2,1)
console.log(arr9.shift());//返回被截断的对象 a
console.log(arr9);//["b", "c", 3, 2, 1]

7.slice()
slice()截取数组的一部分

//新建1个数组arr10
var arr10=new Array('a','b','c',3,2,1)
console.log(arr10.slice(0, 3)); //["a", "b", "c"] 从下标为0开始截取,截取到下标为3之前的对象
console.log(arr10.slice(1));    //["b", "c", 3, 2, 1] 从下标为1开始截取到数组最后一个的对象
console.log(arr10);             //["a", "b", "c", 3, 2, 1] 不改变原数组

8.sort()
sort()对数组进行排序

//新建1个数组arr11
var arr11 = new Array(39,1,2,22,3,0,23,10,32,21);
console.log(arr11.sort());//[0, 1, 10, 2, 21, 22, 23, 3, 32, 39]
//默认排序,优先按数字对象的第一个数字开始排序,之后以首数字进行第二次排序
console.log(arr11.sort(function(a, b) {
    return a - b;
}));//用函数输入一个算法a-b
//[0, 1, 2, 3, 10, 21, 22, 23, 32, 39] 按从小到大排序
console.log(arr11.sort(function(a, b) {
    return b - a;
}));//用函数输入一个算法b-a
//[39, 32, 23, 22, 21, 10, 3, 2, 1, 0] 按从大到小排序
console.log(arr11);//[39, 32, 23, 22, 21, 10, 3, 2, 1, 0] 改变原数组

9.splice()
splice()可以进行对数组进行任意位置的拼接、删除、修改

//新建1个数组arr12
var arr12 = new Array('a','w','s','d',1,2,3,4,5,6);

console.log(arr12.splice(6, 0, 'Alice'));//在数组的下标为6前,不进行截取,添加字符串'Alice',没有进行截取不返还任何值
console.log(arr12);//改变原数组["a", "w", "s", "d", 1, 2, "Alice", 3, 4, 5, 6]

console.log(arr12.splice(2, 4, 'Doris'));//在数组下标为2开始进行截取,截取4位,返回被截取的对象["s", "d", 1, 2],在被截断的位置添加字符串'Doris'
console.log(arr12);//改变原数组["a", "w", "Doris", "Alice", 3, 4, 5, 6]

console.log(arr12.splice(0, 2));//在数组下标为0开始进行截取,截取2位,返回被截取的对象["a", "w"]
console.log(arr12);//改变原数组["Doris", "Alice", 3, 4, 5, 6]

console.log(arr12.splice(2));//在数组下标为2开始进行截取直到数组最后一位对象,返回被截取的对象[3, 4, 5, 6]
console.log(arr12);//改变原数组["Doris", "Alice"]

10.toString()和toLocaleString()
toString()将数组转换成字符串、toLocaleString()将数组按本地格式转换成字符串

//新建1个数组arr13
var arr13 = new Array('a','w','s','d',10000,.2222222,3,4,5,6);
console.log(arr13.toString());
//将数组转换成字符串返回 a,w,s,d,10000,0.2222222,3,4,5,6
console.log(arr13.toLocaleString());
//将数组按本地格式转换成字符串返回 a,w,s,d,10,000,0.222,3,4,5,6
console.log(arr13);
//不改变原对象 ["a", "w", "s", "d", 10000, 0.2222222, 3, 4, 5, 6]

11.unshift()
unshift()在数组下标为0之前添加对象

//新建1个数组arr14
var arr14 = new Array(1,2,3,3,2,1);
console.log(arr14.unshift(0,0,7));//添加数组[0,0,7],返回新数组的长度9
console.log(arr14);//原数组改变[0, 0, 7, 1, 2, 3, 3, 2, 1]

12.valueOf()和toSource()
valueOf()和toSource()都是返回该对象的源代码,toSource()只有火狐支持,而valueOf()在火狐对function对象进行使用时只返回对象的名称,所以要进行兼容性处理

//新建1个数组arr15
var arr15=new Array('devil','May','Cry');
//给数组对象添加一个函数对象
arr15.protagonist=function(){
    console.log('Dante');
}
//toSource只有火狐浏览器支持,封装一个函数进行兼容性处理
function origin(obj) {
    if (isFirefox = navigator.userAgent.indexOf("Firefox") > 0) {
        console.log(obj.toSource());
    } else {
        console.log(obj.valueOf());
    }
}
origin(arr15);//返回["devil", "May", "Cry", protagonist: function]
origin(arr15.protagonist);//返回function (){console.log('Dante');}
console.log(arr15);//不改变原数组["devil", "May", "Cry", protagonist: function]
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值