return
- 1.结束函数语句,return以下的代码都不执行
- 2.作为函数的返回值,函数外部变量可以接受return值 arguments
- 类数组 存放所有的实参
- 类数组,具有索引,但是不能使用数组下api(pop,push.....)
过滤
- filter()作用过滤数组中元素返回新数组存放过滤元素
- 参数 回调函数
- 回参一 : item 数组元素
- 回参二 : index 索引值 forEach
- foEach()作用:遍历数组
- 参数 是函数
- 回参一 : 数组元素
- 会参二 : 索引值 map
-
- 有遍历数组 返回新数组
- 新数组中内容就是return返回的内容
- 过滤区别,过滤是根据条件筛选,返回表达式返回值
-
- 修改数据,重组数据,原来的arr没变化
- 总结 重组过程
- 1: 数据源,原始数数组
- 2: 目标结构 ---> map retrun 返回的结构
- 3: 将return 用变量存储
- 4: 初始化变量; 结合item 进行数据增删改查处理
- 5: 尽量不要修改item 如果item修改了 那么数据就变了 reduce
- reduce() 没有初始值
- 可以reduce 实现累加等运算,并返回原结果
- 注意 会参一 初始值为number类型默认赋值 oders[0]
- reduce(fun,param) 参二作用: 给回参一sum赋初始值改变默认oders[0] some
- some() 检查数组中是否存在满足条件的元素,满足返回true 不满足 返回false
求最大值
var arr = [11,22,44,55,66,88,99]
var max = arr[0]
for(var i=0;i<arr.length;i++){
max = Math.max(max,arr[i])
}
console.log(max)
// 方法二
var max = arr.reduce(function(pre,next){
return Math.max(pre,next)
})
console.log(max)
// 方法三 : 利用排序
arr.sort(function(a,b){
return b-a
})
var max = arr[arr.length-1]
console.log(arr)
//方法四
var max1 = Math.max(...arr)
console.log(max1)
数组排序
- 选择排序;将定义某个位置是最大值
- 用将定的最大值与其他元素比较
- 在比较过程中进行
- 如果存在于比最大值还大的数,就进行换值处理
- 以此类推做到大值在前,小值在后,实现降序效果
var arrObj = [ {name:'aa',age:20}, {name:'bb',age:23}, {name:'cc',age:21}, {name:'dd',age:19}, {name:'ee',age:23}, ]
for(var i= 0;i<arrObj.length;i++){
console.log(arrObj[i].age)
for(var j = i+1;j<arrObj.length;j++)
if(arrObj[i].age>arrObj[j].age){
var tmp = arrObj[i]
arrObj[i] = arrObj[j]
arrObj[j] = tmp
}
}
console.log(arrObj)
数组去重
var arrObj = [
{product:'苹果',code:'123',id:0},
{product:'苹果',code:'123',id:0},
{product:'香蕉',code:'133',id:0},
{product:'香蕉',code:'133',id:0},
{product:'苹果',code:'123',id:0},
{product:'苹果',code:'123',id:0}
]
var res = []
var flag = false
for(var i= 0;i<arrObj.length;i++){
// 验证 code 是否存在重复
for(var j = 0;j<res.length;j++){
if(arrObj[i].code===res[j].code){
flag = true
break
}else{
flag = false
}
}
if(!flag){
res.push(arrObj[i])
}
}
console.log(res)
Array.from()
- Array.from() 将类数组变为真的数组 Ojbect.hasOwnProperty(keys)
- 判断对象下是否存在某个属性keys,存在true 不存在 false