数组 API:
栈方法 :后进先出
/*
栈方法 :后进先出
push(): 数据的插入 -->从最后插入
pop(): 数据的删除--->从最后删除
*/
// push()
let arr=[];
arr.push("red"); //插入一条
arr.push("green","yellow"); //插入多条
let result=arr.push("blue"); //返回数组的长度
console.log(result);
console.log(arr);
//pop()
let color=['red','blue','green','yellow];
let P= color.pop();
console.log(P);
console.log(color);
队列方法: 先进先出
/*
队列方法: 先进先出
unshift() 在数组开头添加数据
shift() 在数组开头删除数据
*/
//unshift()
let arr["green","blue","red"];
arr.unshift("pink");
console.log(arr); // pink green blue red
//shift
arr.shift();
console.log(arr); //green blue red
排序方法:
/*
排序方法:
sort() 对数组进行一个从小到大的排序
reverse() 对数组进行一个反转
*/
//sort()
let arr=[1,9,4,3,5,6,2];
arr.sort();
console.log(arr);
//sort 的局限性
let arrs=[1,,123,85,34,5,8,96];
arrs.sort();
console.log(arrs); //排除的顺序不一样
//对 sort()方法的优化
let arrs=[1,,123,85,34,5,8,96];
arrs.sort(function(num1,num2){
if(num1<num2){
return -1;
}else if(num1>num2){
return 1;
}else{
return 0;
}
})
//反转数组 reverse:
let arr=[15,45,32,49,36];
arr.reverse();
console.log(arr); // 36,49,32,45,15
判断数组类型: instanceof isArray
//判断数组类型: instanceof isArray
let arr=[];
console.log(arr instanceof Array); // true
console.log(arr instanceof Function); //false
console.log(Array.isArray(arr)); // true
数组的迭代器方法:(高阶函数)
/*
数组的迭代器方法:
every:
filter:
forEach:
map:
some:
*/
// forEach(): 遍历数组
let arr=['red','blue','green','yellow];
arr.forEach(function(item,index){ //item就是遍历数组的每一项 index是下标
console.log(item+"--"+index);
})
//every(): 判断每一项是否都返回true ,如果是,结果就返回 true, 有一项不是的话,就返回 false
let num=[1,2,3,4,5,4,3,2,1];
let result=num.every(function(item,index){
return item>0;
})
console.log(result); // true
//some() :判断数组中只要有一项返回 true,那么结果就为 true
let num=[1,2,3,4,5,4,3,2,1];
let result=num.some(function(item,index){
return item>0;
})
console.log(result); // true
//filter(): 数组的筛选,会返回一个新的数组 ,但不会改变原数组
let arr=[15,4,1,3,96,45,62];
let newArr=arr.filter(function(item,index){
return item>40;
})
console.log(newArr); // 96,45,62
console.log(arr); //15,4,1,3,96,45,62
//map():修改数组的值
let nums=[1,2,3,4,5,4,3,2,1];
let mapResult=nums.map(function(item,index){
return item*2;
})
console.log(mapResult); // 2,4,6,8,10,8,6,4,2
console.log(map); // 1,2,3,4,5,4,3,2,1
//map()局部修改
let list=[
{
id:1,
title:'白鹿原',
name:"城忠实",
price:30
},
{
id:2,
title:'蛙',
name:"莫言",
price:38
},
{
id:3,
title:'狂野大陆',
name:"小白",
price:60
},
{
id:4,
title:'原始森林',
name:"大黑",
price:115
}
];
let newList=list.map(function(item,index){
item.isSell=true;
if(item.name=="莫言"){
item.price+=3;
}
return item;
})
console.log(newList);
数组的归并方法:
/*
数组的归并方法:
reduce(): 从头到尾
reduceRight():从尾到头
*/
//reduce():
let num=[1,2,3,4,5];
let sum=num.reduce(function(prev,cur,index){ //prev之前的值 cur现在的值 index下标
return prev+cur;
});
console.log(sum); //15
// reduceRight():
let num=[1,2,3,4,5];
let sum=num.reduceRight(function(prev,cur,index){ //prev之前的值 cur现在的值 index下标
return prev+cur;
});
console.log(sum); //15
数组的操作方法:
/*
数组的操作方法:
concat(): 数组(元素)的拼接
slice():数组的切片
join():把数组元素按照指定字符串拼接
splice():数组(元素)的 增加 删除 修改 会改变原数组
*/
//concat():数组(元素)的拼接
let arr=['red','block','blue'];
let arr2=['yellow'];
let arr3=arr.concat(arr2);
console.log(arr3);
//slice(strat,end): start:包括开始 end:不包括结束 ------> 数组(元素)的截取
let arr=['red','block','blue','yellow','pink'];
let arr1=arr.slice(1);
console.log(arr1); // 'block','blue','yellow','pink'
//join():把数组元素按照指定字符串拼接
let arr=['red','block','blue','yellow','pink'];
let str=arr.join('-');
console.log(str);
//splice(): 元素的增加,删除,修改 会改变原数组
let arr=['red','block','blue','yellow','pink'];
//删除
arr.splice(0,1); //第一个值代表从哪一个开始删除 第二个值代表要删除几个
//修改
arr.splice(1,1,'purple')
//增加
arr.splice(2,0,'orange','skyblue');
console.log(arr);
数组的搜索和位置方法:
/*
数组的搜索和位置方法
indexof():找到元素所对应的索引
lastIndexof():找到最后一次出现的所引
includes():判断元素是否在数组中
find():找到第一个返回条件的
findIndex():找到索引位置
*/
let arr=[1,2,3,4,5,4,3,2,1];
//indexof():
console.log(arr.indexof(4)); //3
//lastIndexof():
console.log(arr.lastIndex(4)); //5
//includes():
console.log(arr.includes(8)); //false
console.log(arr.includes(2)); //true
//find():找到第一个返回条件的
let people=[
{
title:"本草纲目",
price:20
},
{
title:"告白气球",
price:15
}
]
let result=people.find(function(item,index){
return item.price<50
})
console.log(result);
//findIndex(): 找到索引位置
let people=[
{
title:"本草纲目",
price:20
},
{
title:"告白气球",
price:15
}
]
let result=people.findIndex(function(item,index){
return item.price<50
})
console.log(result); //0