4、引用类型--数组

1、数组的创建形式

/**
js 中数组长度 可以随意改变(length属性),元素类型任意
**/
var arr = new Array();
var arr2 = [1,2,'abd',new Date(),true];
arr2.length = 3;
console.log(arr2); // Array [ 1,2,"abd"]

2、数组的常用方法

--push 、pop 

--shift 、unshift

--splice、slice

--concat、join、sort、reverse

/**
push 和 pop 
**/
var arr = [new Date(),false];
var returnVal = arr.push(1,2,true); // push方法向arr数组中追加元素(返回值为新数组的长度) 5
var obj = arr.pop(); // 从数组的尾部移除一个元素(返回值为被移除的元素)
/**
shift 和 unshift 
**/
var arr = [1,2,3,true,new Date()];
var returnVal = arr.shift(); // 从arr头部移除一个元素(返回值为被移除的元素)1
var returnVal2 = arr.unshift(4,5,true,3,false); // 从arr 头部插入多个元素(返回值为新数组的长度)  9,已经被移除一个了所以为9
/**
splice(参数用法比较灵活多样,例子中只是其中一种用法)、slice 两个都是截取的方法
splice 方法操作数组本身
slice  方法不操作数组本身
**/
// splice 第一个参数:表示起始位置
//        第二个参数:表示截取的长度(个数)
//        第三个参数,及以后的参数 表示往 第一个参数的 位置插入的数据
//        第一、二个参数表示数组中要移除的数据
var arr = ['a','b','c','d'];
var returnVal = arr.splice(2,1,4,5,6); // 返回值为被截取移除的元素
console.log(returnVal); // Array [ "c" ]
console.log(arr); // Array [ "a", "b", 4, 5, 6, "d" ]

// show slice
// 第一个参数:表示截取的起始位置
// 第二个参数:表示截取的结束位置(但不包括该位置)
var arr2 = [1,2,3,4,5,6];
var result = arr2.slice(2,4); // 不操作数组本身,截取范围(左闭右开区间)返回值为截取的元素数组 
console.log(arr2); // Array [1,2,3,4,5,6] 原数组arr2未发生改变
console.log(result); // Array [ 3, 4 ]

/**
concat 和 join ,两者都不操作数组本身
**/

// show concat
var arr1 = [1,2,3];
var arr2 = [true,4,5];
var result = arr1.concat(arr2); // 返回值为拼接后的新数组
console.log(result); // Array [ 1, 2, 3, true, 4, 5 ]

//show join
var  arr3 = [false,null,1,'abc',undefined]
var result2 = arr3.join('-'); // 用 参数 中的字符串 拼接 数组中的 元素
console.log(result2); // false--1-abc- 

/**
sort 和 reverse
sort 正序排序(默认任何元素都按字符串的顺序排序)
reverse 反转元素
**/

// show sort
var arr1 = [5,2,1,4,3];
var arr2 = [10,2,4,1,7];
var arr3 = [10,2,4,1,7];
console.log(arr1.sort()); // 操作数组本身,返回值为操作后的数组  Array [ 1, 2, 3, 4, 5 ]
console.log(arr1); // Array [ 1, 2, 3, 4, 5 ]
arr2.sort();
console.log(arr2); // Array [ 1, 10, 2, 4, 7 ] // 按字符串顺序排序
function compare(value1,value2){
 return value1 < value2 ? -1 : (value1 == value2 ? 0 : 1)
}
arr3.sort(compare);
console.log(arr3) // Array [ 1, 2, 4, 7, 10 ] // 按 compare 定义的函数排序

// show reverse 
var arr4 = [5,2,1,4,3];
console.log(arr4.reverse()); // 操作数组本身,返回值为操作后的数组 Array [ 3, 4, 1, 2, 5 ]
console.log(arr4); // Array [ 3, 4, 1, 2, 5 ]


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值