1. 根据字段求最大值
语法array.reduce(callback[, initialValue])
参数说明
array 必需。数组对象 callback 必需。一个接受最多四个参数的函数。对于数组中的每个元素,reduce 方法都会调用
callback函数一次。 initialValue 可选。如果指定 initialValue,则它将用作初始值。第一次调用
callback 函数会将此值作为参数。 返回值:通过最后一次调用回调函数获得的累积结果 回调函数语法: function
callbackfn(previousValue, currentValue, currentIndex, array)
参数说明
previousValue 通过上一次调用回调函数获得的值。如果向 reduce 方法提供
initialValue,则在首次调用函数时,previousValue 为 initialValue。
currentValue 当前数组元素的值。 currentIndex 当前数组元素的数字索引。 array 包含该元素的数组对象。
示例:获取前数据
获取字段sales最大值
let maxValue = m2.reduce((pre,cur)=>{
return pre.sales > cur.sales ? pre:cur
})
返回结果:
获取字段len最小值
let maxValue = m2.reduce((pre,cur)=>{
return pre.len < cur.len ? pre:cur
})
返回结果:
2普通数组获取最大值
var m =[1,2,4,56,7,5,2]
console.log(Math.max.apply(null,m)) //返回56
//普通数组获取最小值
console.log(Math.min.apply(null,m)) //返回1
Math常见用法
console.log(typeof Math) //object
console.log(Math.round(11.5))//四舍五入取整返回12
console.log(Math.floor(15.6)) //向上取整 15
console.log(Math.ceil(15.6)) //向下取整 16
console.log(Math.sqrt(16)) //平方根 4
console.log(Math.pow(2,10)) //n的m次方pow(n,m) 1024
3 indexOf() 查找元素位置
indexOf(某元素 , startIndex)
从startIndex开始查找某元素(如没有startIndex则默认查找全部数组),如果存在则返回位置,不存在返回-1。也可用于字符串查找是否包含某字符。
可以用indexOf函数获取元素位置修改坐在位置的值
//indexOf() 查找元素位置
var m =[1,2,4,56,7,5,2]
var index = m.indexOf(1)
m[index] = 13
console.log(m) //[13, 2, 4, 56, 7, 5, 2]
4.includes() 查找是否包含某元素
可用来判断字段是否存在空值
includes()查找是否包含元素 可用来判断是否存在空值
console.log(m1)
for(var j=0;j<m1.length;j++){
for(var z =0;z<m1[j].length;z++){
console.log(m1[j][z].other.includes(null)) //返回false
}}
5.push() 后增元素
push(元素) 在数组最后增加一个元素,并返回新数组的长度
//push
const example =['xh','xm','xl']
const a = example.push('hh')
console.log(a) // 返回4
console.log(example) //返回["xh", "xm", "xl", "hh"]
6、unshift() 前增元素
unshift(元素一, 元素二 … ),在数组前增加一个或多个元素并返回新数组的长度。
//unshift()前增元素
const example = ['mio', 'neeko','abby'];
const a = example.unshift('ada','lily','may'); // 可填写一个或多个元素
console.log(example); // ["ada", "lily", "may", "mio", "neeko", "abby"]
console.log(a); //返回6
7、pop() 后删元素
pop()用于删除并且返回最后一个元素
//pop 后删元素
const example3 = ['mio', 'neeko','abby'];
const a2 = example3.pop();
console.log(example3); // 控制台输出结果 ["mio", "neeko"]
console.log(a2); // 控制台输出结果 abby
8、shift() 前删元素
shift()用于删除并且返回首个元素
//shift()前删元素
const example4 = ['mio', 'neeko','abby'];
const a3 = example4.shift();
console.log(example4); // 控制台输出结果 ["neeko", "abby"]
console.log(a3); // 控制台输出结果 mio
9、splice() 修改数组
splice(index, length, 增加元素一,增加元素二,…
增加元素n),从index处开始删除length个元素,并从index处开始新增元素,返被删除元素组成的数组
//splice修改数组
const example1 = ['mio', 'neeko','abby'];
const example2 = ['mio', 'neeko','abby'];
const example3 = ['mio', 'neeko','abby'];
const a = example1.splice(1); // 如果没有写length,表示删除index以后的所有元素
console.log(a); // 控制台输出结果 ["neeko", "abby"]
console.log(example1); // 控制台输出结果 ["mio"]
const b = example2.splice(1,1);
console.log(b); // 控制台输出结果 ["neeko"]
console.log(example2); // 控制台输出结果 ["mio", "abby"]
const c = example3.splice(1,1,'lily','may');
console.log(c); // 控制台输出结果 ["neeko"]
console.log(example3); // 控制台输出结果 ["mio", "lily", "may", "abby"]
10、concat() 合并数组
数组一.concat(数组二) 合并数组,返回新数组但不会改变原数组 //concat()合并数组
const example4 = ['mio', 'neeko','abby'];
const example5 = ['lily', 'may'];
const a = example4.concat(example5);
console.log(a); // 控制台输出结果 ["mio", "neeko", "abby", "lily", "may"]
console.log(example4); // 控制台输出结果 ['mio', 'neeko','abby']
console.log(example5); // 控制台输出结果 ['mio', 'neeko','abby']
11.slice() 剪切数组
slice(startIndex, endIndex) ,返回从startIndex开始(包含
startIndex)到endIndex(不包含endIndex)之间元素组成的数组。返回新数组不改变原数组。
//slice剪切数组
const example6 = ['mio', 'neeko','abby','lily', 'may'];
const a = example6.slice(1,4);
console.log(a); // 控制台输出结果 ["neeko", "abby", "lily"]
console.log(example6); // 控制台输出结果 ["mio", "neeko", "abby", "lily", "may"]
12、join() 将数组转化为字符串
//join将数组转化为字符串
const example7 = ['mio', 'neeko','abby','lily', 'may'];
const a = example7.join();
console.log(a); // 控制台输出结果 mio,neeko,abby,lily,may
console.log(example7); // 控制台输出结果 ["mio", "neeko", "abby", "lily", "may"]
13.Sort排序
// 根据salas字段排序
// 升序
m4.sort(function(a,b){
return a.sales-b.sales
})
排序前
排序后
// 降序
n4.sort(function(a,b){
return b.sales-a.sales
})
console.log(n4)
14、filter() 数组过滤
filter(a=> 条件),返回满足条件的元素组成的数组,不改变原数组
//fliter()数组过滤
//普通用法
console.log(m4)
var as =m4.filter(a=>a.sales>200)
console.log(as)
过滤前:
过滤后:
与Map()组合去重
// 与Map()组合去重
const re = new Map()
var s = n2.filter(a=> !re.has(a.mon) &&re.set(a.mon,1))
console.log(s)
聚合前:
聚合后: