数组:
属性:constructor,length,prototype
方法:push,pop,shift,unshift(新增),splice,slice,reverse,sort,concat,filter,map,some,every
1、filter:过滤出符合条件的值,返回新数组
var spread = [12, 5, 8, 130, 44]
// 筛选条件符合大于10的新数组
var filtered = spread.filter(n => n >= 10)
console.log(‘filtered’, filtered) // => [12, 130, 44]
var users = [
{ 'user': 'barney', 'age': 36, 'active': true },
{ 'user': 'fred', 'age': 40, 'active': false },
{ 'user': 'ared', 'age': 24, 'active': false },
{ 'user': 'ered', 'age': 80, 'active': false },
{ 'abc': 'ered', 'age': 80, 'active': false }
]
// 筛选 age等于40或者age等于24的 数组对象
var filtered = users.filter(n => n.age===40 || n.age===24)
console.log('filter后的键名', filtered) // => [{user: "fred", age: 40, active: false},{user: "ared", age: 24, active: false}]
2、map 一一对应 对数组元素进行处理,返回处理后的新数组
3、some:是否有元素符合条件,返回true或false
//数组中的元素部分满足指定条件返回true
//运行结果为false
var checknum = [15,3,2,6,7,1,9,10];
var checkresult = checknum.some(function(item,index,array){
return item > 15;
});
alert(checkresult);
4、every:检测每个元素是否都符合条件
//数组中的元素全部满足指定条件返回true
//运行结果为false
var checknum = [15,3,2,6,7,1,9,10];
var checkresult = checknum.every(function(item,index,array){
return item > 1 ;
});
alert(checkresult);
es6:1、find
作用:find()函数用来查找目标元素,找到就返回该元素,找不到返回undefined。
参数:
查找函数有三个参数。
value:每一次迭代查找的数组元素。
index:每一次迭代查找的数组元素索引。
arr:被查找的数组
const arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
var ret1 = arr1.find((value, index, arr1) => {
return value > 4
})
var ret2 = arr1.find((value, index, arr1) => {
return value > 14
})
console.log('%s', ret1)//5
console.log('%s', ret2)//undefined
2、findIndex()同上
作用:findIndex()函数也是查找目标元素,找到就返回元素的位置,找不到就返回-1。
同样是接收三个参数,同上
3、of:方法用于将一组值,转换为数组。
{
let arr = Array.of(3,4,7,9,11);
console.log('arr=',arr);
let empty=Array.of();
console.log('empty',empty);
}
4、from:方法用于将两类对象转为真正的数组,针对伪数组
{
let p=document.querySelectorAll('p');
console.log(p.length,p[0])
let pArr=Array.from(p);
console.log(pArr.length,pArr[0])
//鸭子理论,它像鸭子一样行走
var newEle = document.createElement("p");//新建一个p元素
//p.push(newEle);//报错
pArr.push(newEle);//正常运行
}
5、fill:fill方法使用给定值,填充一个数组。
{
console.log('fill-7',[1,'a',undefined].fill(7));
console.log('fill,pos',['a','b','c'].fill(7,1,3));//1-3之间填充7
}
6、entries(),keys()和values() 遍历数组
{
for(let index of ['1','c','ks'].keys()){
console.log('keys',index);
}
for(let value of ['1','c','ks'].values()){
console.log('values',value);
}
for(let [index,value] of ['1','c','ks'].entries()){
console.log('values',index,value);
}
}
7、includes方法返回一个布尔值,表示某个数组是否包含给定的值
{
console.log('number',[1,2,NaN].includes(1));
console.log('number',[1,2,NaN].includes(NaN));
}
8、copyWithin: 在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。也就是说,使用这个方法,会修改当前数组。
{
console.log([1,2,3,4,5].copyWithin(0,3,4));//将3,4之间的值复制到0位置
}
9、扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。
console.log(...[1, 2, 3])
// 1 2 3
console.log(1, ...[2, 3, 4], 5)
var obj = {
name:"张三",
sex:"sex"
}
var newObj = {
...obj,
num:1
}
console.log(newObj)