JavaScript引用数据类型之Array类型

(1)创建数组
//Array构造函数
var arr = new Array();
arr[0]='red';
arr[1]='blue';
arr[2]='green';
//数组字面量表示法
var arr = ['red','blue','yellow'];

arr[99] = 'orange';
console.log(arr.length);//100
(2)添加新项
arr[arr.length] = 'pink'
(3)设置长度
arr.length = 5
(4)检测数组

instanceof

if(arr instanceof Array){
    console.log("是数组");
}
if(Array.isArray(arr)){
    console.log("是数组");
}
(5)转换方法

toString、valueOf、toLocaleString、join

arr.toString()			//返回数组中每个值的字符串形式拼接而成的一个以逗号分割的字符串
arr.valueOf()			//返回的还是数组
arr.toLocaleString()	//返回逗号隔开的字符型,与toString()有区别(具体的还不懂)
arr.join("||")			//自定义分割符组成的字符型
(6)栈方法(后进先出)

push、pop

var arr = new Array();
arr.push('1',2,'3',4) 	//在数组末尾添加新项
var item = arr.pop() 	//取得最后一项后并移除了
console.log(item);		//4
arr.pop()  				//又再移除最后一项
console.log(arr);		 // ['1', 2]
(7)队列方法(先进先出)

unshift、shift

var arr = new Array(); 
arr.unshift('1',2,'3',4)   //在数组前端添加任意项
arr.shift()				  //移除数组第一项
(8)重排序方法

reverse、sort

var values = [5,4,3,2,1]
console.log(values.reverse()); //反转数组
console.log(values.sort());    //降序排序
(9)操作方法

concat 、slice、splice

concat()方法:合并成一维数组)基于当前数组中的所有项创建一个新数组,将参数添加到数组后面并返回新的数组,不影响原数组

var array = [1,2,3]
var newarr = array.concat(4,5,6,['red',true])// [1, 2, 3, 4, 5, 6, 'red', true]

slice(起始,结束)方法:(切片)基于当前数组创建新数组,不会影响原数组

var array = ['a','b','c','d','e']
var newarr = array.slice(1,3)			//['b', 'c']  截取1到3(不包括3)的项
var newarr1 = array.slice(1)			//['b', 'c', 'd', 'e'] 从1开始截取

splice()修改原数组

//删除:splice(起始位置,要删除的项数)
var array5 = [0,1,2,3,4,5,6,7]
array5.splice(1,4)			     //[0, 5, 6, 7]
//插入:splice(起始位置,0,要插入的项)
var array3 = [0,1,2,3,4,5,6,7]
array3.splice(1,0,'red')		 // [0, 'red', 1, 2, 3, 4, 5, 6, 7]
//替换:splice(起始位置,要删除的项数,要替换的项)
var array4 = [0,1,2,3,4,5,6,7]
array4.splice(1,4,'1','2','3','4')// [0, '1', '2', '3', '4', 5, 6, 7]
(9)位置方法

indexOf 、lastIndexOf

indexOf ()是查某个指定的字符串在字符串首次出现的位置(索引值) (也就是从前往后查)

var str="ABCDEFGABCDEFG";
str.indexOf('C');			//2  从前往后出现的第一个C的索引是2
str.indexOf("C",5 );		//9  从第5个开始,第一个出现是C的索引是5

lastIndexOf () 是从右向左查某个指定的字符串在字符串中最后一次出现的位置(也就是从后往前查)

str.lastIndexOf('C');      //9  从后往前出现的第一个C的索引是9
str.lastIndexOf("C", 5);   //9  从倒数第5个开始,第一个出现是C的索引是2
(10)归并方法

reduce、reduceRight

reduce()从数组的第一项开始,逐个遍历到最后

var array = [1,2,3,4,5]
var sum = array.reduce((prev,cur,index,array)=>{
   console.log(prev,cur,index,array);
   return prev+cur
});
console.log(sum);
//1 2 1 (5) [1, 2, 3, 4, 5]
// 3 3 2 (5) [1, 2, 3, 4, 5]
// 6 4 3 (5) [1, 2, 3, 4, 5]
// 10 5 4 (5) [1, 2, 3, 4, 5]
// 15

reduceRight(从数组的最后一项开始,向前遍历到第一项

var array = [1,2,3,4,5]
var sum = array.reduceRight((prev,cur,index,array)=>{
   console.log(prev,cur,index,array);
   return prev+cur
});
console.log(sum);
// 5 4 3 (5) [1, 2, 3, 4, 5]
// 9 3 2 (5) [1, 2, 3, 4, 5]
// 12 2 1 (5) [1, 2, 3, 4, 5]
// 14 1 0 (5) [1, 2, 3, 4, 5]
// 15
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值