哈喽小伙伴们,本文将收录在JavaScript【前端童子功】这个专栏里;这个专栏里边会收录一些JavaScript的基础知识和项目实战;希望大家可以多多支持,你们的支持就是我创作的动力;让我们一起来看看吧
用来存储一组或一系列相关数据的容器。
var arr=[];
arr[0]="a",arr[1]="b",arr[2]="c"
var arr=[a,b,c];
var arr=new Array(3//指长度);
arr[0]=1;arr[1]=2;arr[2]=3;
var arr=new Array(1,2,3);
var arr=new Array(5);
//利用实例化构造函数的方式创建数组,只传一个值,表示数组长度。
0-arr.length-1
arr[0]
arr[arr.length-1]
arr.length
循环访问数组中的每一个元素。
for(var i=0;i=arr.length;i++){
arr{i}
}
for(var i in arr){
i;//下标
arr[i];//元素
}
for(var i of arr){
i;//元素
}
一维数组中的每一个元素都是一个数组,叫做二维数组。
var arr[[1,2],[2,3],[3,4,5]]
arr.length
arr[i][j]
for(var i=0;i<arr.lenght;i++){
for(var j=0;j<arr[i].length;j++)
arr[i][j];
}
会修改原数组
返回值:修改后的length值
可以追加多个
arr[1,2,3];
arr1[4,5,6];
arr2[...arr,...arr1]; // ...扩展运算符,将数组展开
不修改原数组
返回值是连接之后的新数组
var arr1=[1,2,3];
var arr2=[4,5,6];
console.log(arr1.concat(arr2,[7,8,9]));
// 控制台输出
// (9) [1, 2, 3, 4, 5, 6, 7, 8, 9]
Array.prototype.push.apply(a,b) //b为push参数
返回值是数据的下标,没有找到则返回-1
var arr=[1,5,6,99,52,663,22,66,552,123,6,622];
console.log(arr.indexOf(22)); //查找22在arr数组中的位置
// 控制台输出
// 6
如果没有参数,则从字符的编码开始按顺序排
如果有参数,这个参数必须是一个函数(回调函数)这个回调函数有两个参数,分别是a,b
修改原数组
返回值是排序之后的数组
var arr3=[1,5,6,99,52,663,22,66,552,6,622];
arr3.sort(function(a,b){
//a-b 正序,
//b-a 倒序,
return a-b;
})
console.log(arr3);
// 控制台输出
// (11) [1, 5, 6, 6, 22, 52, 66, 99, 552, 622, 663]
//箭头函数
arr.sort((a,b)=>a-b) //正序,
arr.sort((a,b)=>b-a) //倒序,
接收一个回调函数,回调函数第一个参数是 数组值
第二个参数是 下标
var arr3=[1,5,6,99,52,663,22,66,552,6,622];
var num=0;
arr3.forEach(function(value,index){
num+=v;
console.log(index,value)
})
// 箭头函数
arr3.forEach((value,index)=>{console.log(index,value)})
根据回调函数的返回值进行元素筛选
- 返回值是true,该元素会保留
- 返回值是false,该元素跳过
不修改原数组
返回值是筛选之后的数组
var arr=[1,5,6,99,52,663,22,66,552,123,6,622];
var newArr =arr.filter(function(value(值),index(下标)){
return value>100; //筛选arr数组中值大于100的元素;
})
console.log(newArr);
// 控制台输出
// (4) [663, 552, 123, 622]
var person = [
{name: "张三",age:20,sex: "男"},
{name: "李四",age:19,sex: "女"},
{name: "王五",age:22,sex: "男"},
{name: "赵六",age:21,sex: "女"}
];
var x =person.filter(function(value,index){
return value.age>20; // 筛选出年龄大于20岁的学生
// return value.sex=="男"; //筛选出男同学
})
console.log(x);
// 箭头函数
arr.filter((value,index)=>{return 判断条件})
将回调函数每次的返回值,组成一个新的数组
返回值是映射改变之后的数组
不修改原数组
var arr=[1,5,6,99,52,663,22,66,552,123,6,622];
// var end=arr3.map(function(value,index){
// return value*2; //将数组中的所有元素都乘以2返回
// });
// 箭头函数
var end = arr.map((value,index)=>value*2);
console.log(end);
var arr3=[1,5,6,99,52,663,22,66,552,123,6,622];
var end=arr3.some(function(value,index){
return value<500;
});
console.log(end); //true
var arr3=[1,5,6,99,52,663,22,66,552,123,6,622];
var end=arr3.every(function(value,index){
return value<500;
});
console.log(end); //false
返回修改后的数组
改变原数组
var arr=[1,5,8,6,9,4,2,3];
console.log(arr.reverse()); // (8) [3, 2, 4, 9, 6, 8, 5, 1]
console.log(arr); // (8) [3, 2, 4, 9, 6, 8, 5, 1]
方法用于将两类对象转为真正的数组:类似数组的对象和可遍历的对象(包括 ES6 新增的数据结构 Set 和 Map)
var a={length:2,0:'aaa',1:'bbb'};
Array.from(a); //['aaa','bbb']
// 原理:Array.prototype.slice.call(a);
var b={length:2};
Array.from(b); //[undefined.undefined]
Array.of
方法用于将一组值,转换为数组。 Array.of() // []
Array.of(undefined) // [undefined]
Array.of(1) // [1]
Array.of(1, 2) // [1, 2]
用于检查数组是否包含某元素,包含返回true,否则返回false
无法检测对象是否存在
假如只想知道某个值是否在数组中而并不关心它的索引位置,建议使用
includes()
如果想获取一个值在数组中的位置,那么你只能使用 indexOf
方法。并且 includes()
可以识别NaN
var arr = [1,2,{name:"张三"}]
arr.includes(2) // true
arr.includes(4) // false
arr.includes({name:"张三"}) // false
['a', 'b', 'c', 'd'].includes('b') // true
['a', 'b', 'c', 'd'].includes('b', 1) // true
['a', 'b', 'c', 'd'].includes('b', 2) // false
将数组顺序打乱:例如不重复随机选取数组内容,可将数组打乱后按顺序取出
arr.sort(()=>Math.random()-0.5)
数组乱序排列
var arr=[1,2,3,4,5,6,7,8,9];
arr.sort(()=>Math.random()-0.5)
console.log(arr);
更多Node知识以及API请大家持续关注,尽请期待。各位小伙伴让我们 let’s be prepared at all times!
✨原创不易,还希望各位大佬支持一下!
点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!