数组Array的创建以及常用方法

15 篇文章 0 订阅
6 篇文章 0 订阅

数组Array的创建以及常用方法

instanceof;//检测是否为数组,返回布尔类型
--------------------------------------
var obj={};
console.log(obj instanceof Array)//返回false
Array.isArray();//判断当前对象是否是数组,有兼容性问题
---------------------------------------
var obj=[];
console.log(Array.isArray(obj));//返回true
toString();//把数组转换为字符串,逗号分隔每一项
valueOf();//返回数组对象本身

Array.from(arr);

//将一个类数组对象或可遍历对象转换成一个真正的数组
-------------------------------------------
//把原来的数组整个拿过来,克隆一个新的数组
var arr=["a","b","c"];
var newarr=Array.from(arr);//原来的数组整个拿过来,克隆一个新的数组
console.log(newarr);//返回["a","b","c"]
-------------------------------------------
//接受一个字符串,将字符串转为数组
Array.from('abc') //['a','b','c']
-------------------------------------------
Array.from (obj, mapFn)
//obj指的是数组对象、类似数组对象或者是set对象,map指的是对数组中的元素进行处理的方法。

//将数组中布尔值为false的成员指为0
Array.from([1, ,2,3,3], x => x || 0) //[1,0,2,3,3] 

//将一个类似数组的对象转为一个数组,并在原来的基础上乘以2倍(加减乘除都可以)
//该类数组必须有length属性(数值型或数字),用于指定数组长度,没有length转换后是一个空数组,返回所有对象都是undefined
let arrayLike = { '0': '2', '1': '4', '2': '5', length: 3 }
Array.from(arrayLike, x => x*2) //[4,8,10] 

//将一个set对象转为数组,并在原来的基础上乘以2倍(加减乘除都可以)
Array.from(new Set([1,2,3,4]), x => x*2) //[2,4,6,8] 
-------------------------------------------
Array.from ({length:n}, Fn)
//第一个参数指定了第二个参数执行的次数。可以将各种值转化为真正的数组。

Array.from({length:3}, () => 'jack') //["jack", "jack", "jack"] 

Array.from({length:3}, item => (item = {'name':'shao','age':18})) //[{'name':'shao','age':18}, {'name':'shao','age':18}, {'name':'shao','age':18}] 
-------------------------------------------
Array.from({length: 2}, (v, i) => item = {index:i});//生成一个index从0到4的数组对象[{index: 0},{index: 1}]
-------------------------------------------

arr.every(callback);

arr.every(callback);//callback表示函数
//返回值是布尔类型,函数作为参数使用,函数中共有3个参数,第一个是元素的值,第二个是索引值,第三个参数展示原来的数组可以忽略
//如果这个数组中的每个元素的值都符合条件,最后才返回true,看下面的案例
--------------------------------------------
var arr=[1000,2000,3000];
arr.every(function(a,b,"+",c){
  console.log(a,b,c);//a代表参数,b是元素索引,c是原数组
})//输出结果为1000,0,+,1000,2000,3000

-----------------------------------------------
var arr=[1000,2000,3000];
var flag=arr.every(function(a,b){
  return a>2000;//数组中的每个元素都要大于2000的情况,返回true
});
console.log(flag);//返回false,因为有一个不大于2000的

-----------------------------------------------

 var arr=["方框打勾或多个","的健康噶结果","健康的是"];
var flat=arr.every(function(ele,index){
    return ele.length>4;
});//返回false,最后一个元素长度等于4,不满足条件,返回false

arr.filter(callback);

arr.filter(callback);//callback表示函数,案例去除数组中的0,返回新数组

Array.filter();返回的是数组中每一个元素都符合条件的元素,组成了一个新数组
//调用方法,将符合条件的元素的值都拿出来,放到新的数组中
//参数:callback表示传入一个函数,表示有3个值,元素值,元素索引以及原数组
-----------------------------------------------
 案例:将数组中大于40的数分别取出来组成一个新的数组
 var arr=[10,20,30,40,50,60,70];
 var newArr=arr.filter(function(ele){
     //这里的ele表示每个元素,参数后面省略了元素索引和原数组两个参数
     return ele>40;//拿出元素大于40的组成新的数组
 });
 console.log(newArr);//返回的结果为[50,60,70]
------------------------------------------------
案例:去除数组中的0,返回新数组
var arr=[10,0,20,30,40,0];
var newArr=arr.filter(function(ele){
    return ele!=0;//拿出不等于0的元素组成新数组
});
console.log(newArr);//返回[10,20,30,40]

arr.push(值);

arr.push(值);//在数组最后插入元素,返回的arr为添加后新数组,返回的newArr为数组长度
------------------------------------------
var arr=[1,2,4,6];
var result=arr.push(0);
console.log(arr);//返回[0,1,2,4,6];
console.log(result);//返回5,数组的长度

arr.pop();

//删除数组最后一个元素,返回的arr为添加后新数组,返回的newArr为删除后的数组长度
var arr=[10,20,30,40,50];
var result=arr.pop();
console.log(arr);//返回[10,20,30,40]
console.log(result);//返回50,返回删除的元素

arr.shift();

//删除数组第一个元素,返回的arr为添加后新数组,返回数组是删除元素后的数组,返回值result就是删除的元素
var arr=[10,20,30,40,50];
var result=arr.shift();
console.log(arr);//返回[20,30,40,50]
console.log(result);//返回10,返回删除的元素


arr.unshift(元素);

//在数组前面插入元素,返回的arr为添加后新数组,返回的newArr为数组长度
--------------------------------
var arr=[10,20,30,40,50];
var result=arr.unshift(100);
console.log(arr);//返回[100,10,20,30,40,50];
console.log(result);//返回6,处理后的数组长度

arr.forEach(callback);

//遍历数组,对数组的每个元素,都执行一次提供的callback函数,例如遍历数组
//callback表示函数,函数中传入两个参数,第一个是元素,第二个是索引,遍历数组
--------------------------------------
var arr=[10,20,30,40];
arr.forEach(fucntion(ele,index){
   //ele是元素,index表示索引值
   console.log(ele,"----",index);
})
//输出,前面是元素,后面是索引
    10----0
    20----1
    30----2
    40----3

arr.indexOf(元素);

//返回元素所在的索引值
var arr=[10,20,30,40];
var index=arr.indexOf(30);
console.log(index);//输出2,表示30的索引值为2
//如果输入的值不存在在数组中,返回-1

arr.lastIndexOf();

//返回指定元素在数组中的最后一个索引值,如果不存在返回-1,从数组的后面向前查找

arr.join(“|”);

//返回的是一个字符串,可以加入分隔符|
var arr=["张三","李四","王二","麻子"];
var str=arr.join("||");
console.log(str);//返回[ 张三||李四||王二||麻子 ]

arr.map(函数);

//arr.map(Math.sqrt),数组中每个元素都要执行这个函数,这里是开方,把执行的结果组成新数组返回
--------------------------------
var number=[1,4,9];
var roots=number.map(Math.sqrt);//Math.sqrt表示开方
console.log(roots);//输出结果为[1,2,3]

arr.reverse();

//反转数组,相当于倒序遍历数组
var arr=[10,20,30,40,50];
arr.reverse();
console.log(arr);//输出[50,40,30,20,10]

arr.slice(x,y);

slice() 	//从当前数组中截取一个新的数组,不影响原来的数组,参数start从0开始,end从1开始
//从索引x的地方开始截取,一直到索引为y的位置,不包含y
var arr=[10,20,30,40,50,60];
var newArr=arr.slice(2,5);
console.log(newArr);//输出[30,40,50];

arr.splice(x,y,z);

//arr.splice(开始的位置,要删除的个数,替换的元素值)
//索引x的位置,删除几个元素,插入元素值
var arr=["a","b","c","d","e"];
//arr.splice(2,0,'123');//索引为2的位置,不删除值,插入'123'
//console.log(arr);//输出["a","b","c","123","d","e"]

arr.splice(2,1);//索引为2的位置删除1项,也就是"c"
console.log(arr);//输出["a","b","d","e"]

总结数组常用方法

演示:push()、shift()、unshift()、reverse()、sort()、splice()、indexOf()

// 1 栈操作(先进后出)
push()
pop() 		//取出数组中的最后一项,修改length属性
// 2 队列操作(先进先出)
push()
shift()		//取出数组中的第一个元素,修改length属性
unshift() 	//在数组最前面插入项,返回数组的长度
// 3 排序方法
reverse()	//翻转数组
sort(); 	//即使是数组sort也是根据字符,从小到大排序


-----------------------------
    
// 4 操作方法
concat()  	//把参数拼接到当前数组,可以拼接多个数组
    案例 >-    var arr1=["1","2","3"];
        >-    var arr2=["a","b","c"];
        >-    console.log(arr1.concat(arr2));
               //返回【"1","2","3","a","b","c"】
            
 -------------------------------
            

splice()	//删除或替换当前数组的某些项目,参数start, deleteCount, options(要替换的项目)
// 5 位置方法
indexOf()、lastIndexOf()   //如果没找到返回-1

-------------------------------
    
// 6 迭代方法 不会修改原数组(可选)s
every()、filter()、forEach()、map()、some()
//方法解释在上面
---------------------------------------------


// 7 方法将数组的所有元素连接到一个字符串中。
join()

清空数组

// 方式1 推荐 
arr = [];
// 方式2 
arr.length = 0;
// 方式3
arr.splice(0, arr.length);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值